diff --git a/authors.json b/authors.json index 9f94aa9f..21dddd1c 100644 --- a/authors.json +++ b/authors.json @@ -33,7 +33,8 @@ "username": "Emmaccen", "commit_emails": [ "58217705+Emmaccen@users.noreply.github.com", - "lucius.emmanuel.e@gmail.com" + "lucius.emmanuel.e@gmail.com", + "oriolaemmanuel199@gmail.com" ], "socials": { "twitter": "emmaccen", diff --git a/preview-images/optimized/pre--4255872294.jpg b/preview-images/optimized/pre--4255872294.jpg new file mode 100644 index 00000000..c8285f4e Binary files /dev/null and b/preview-images/optimized/pre--4255872294.jpg differ diff --git a/preview-images/optimized/pre-.jpg b/preview-images/optimized/pre-.jpg deleted file mode 100644 index 87eb643e..00000000 Binary files a/preview-images/optimized/pre-.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-264871822.jpg b/preview-images/optimized/pre-antara-264871822.jpg new file mode 100644 index 00000000..95c663ea Binary files /dev/null and b/preview-images/optimized/pre-antara-264871822.jpg differ diff --git a/preview-images/optimized/pre-antara-api-1060888254.jpg b/preview-images/optimized/pre-antara-api-1060888254.jpg new file mode 100644 index 00000000..efd046bc Binary files /dev/null and b/preview-images/optimized/pre-antara-api-1060888254.jpg differ diff --git a/preview-images/optimized/pre-antara-api-assets-1562272474.jpg b/preview-images/optimized/pre-antara-api-assets-1562272474.jpg new file mode 100644 index 00000000..4875e65c Binary files /dev/null and b/preview-images/optimized/pre-antara-api-assets-1562272474.jpg differ diff --git a/preview-images/optimized/pre-antara-api-assets.jpg b/preview-images/optimized/pre-antara-api-assets.jpg deleted file mode 100644 index 0b556dc1..00000000 Binary files a/preview-images/optimized/pre-antara-api-assets.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-channels-2592570489.jpg b/preview-images/optimized/pre-antara-api-channels-2592570489.jpg new file mode 100644 index 00000000..9130df9f Binary files /dev/null and b/preview-images/optimized/pre-antara-api-channels-2592570489.jpg differ diff --git a/preview-images/optimized/pre-antara-api-channels.jpg b/preview-images/optimized/pre-antara-api-channels.jpg deleted file mode 100644 index e28ad3ee..00000000 Binary files a/preview-images/optimized/pre-antara-api-channels.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-custom-391528626.jpg b/preview-images/optimized/pre-antara-api-custom-391528626.jpg new file mode 100644 index 00000000..2dacaab4 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-custom-391528626.jpg differ diff --git a/preview-images/optimized/pre-antara-api-custom.jpg b/preview-images/optimized/pre-antara-api-custom.jpg deleted file mode 100644 index 89c9990b..00000000 Binary files a/preview-images/optimized/pre-antara-api-custom.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-dice-63664629.jpg b/preview-images/optimized/pre-antara-api-dice-63664629.jpg new file mode 100644 index 00000000..36df05bc Binary files /dev/null and b/preview-images/optimized/pre-antara-api-dice-63664629.jpg differ diff --git a/preview-images/optimized/pre-antara-api-dice.jpg b/preview-images/optimized/pre-antara-api-dice.jpg deleted file mode 100644 index e9a8ecd5..00000000 Binary files a/preview-images/optimized/pre-antara-api-dice.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-dilithium-1603477472.jpg b/preview-images/optimized/pre-antara-api-dilithium-1603477472.jpg new file mode 100644 index 00000000..db26819d Binary files /dev/null and b/preview-images/optimized/pre-antara-api-dilithium-1603477472.jpg differ diff --git a/preview-images/optimized/pre-antara-api-dilithium.jpg b/preview-images/optimized/pre-antara-api-dilithium.jpg deleted file mode 100644 index 246d2a4f..00000000 Binary files a/preview-images/optimized/pre-antara-api-dilithium.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-faucet-3997433047.jpg b/preview-images/optimized/pre-antara-api-faucet-3997433047.jpg new file mode 100644 index 00000000..2c0e63cc Binary files /dev/null and b/preview-images/optimized/pre-antara-api-faucet-3997433047.jpg differ diff --git a/preview-images/optimized/pre-antara-api-faucet.jpg b/preview-images/optimized/pre-antara-api-faucet.jpg deleted file mode 100644 index 4238d0be..00000000 Binary files a/preview-images/optimized/pre-antara-api-faucet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-gaming-2747455807.jpg b/preview-images/optimized/pre-antara-api-gaming-2747455807.jpg new file mode 100644 index 00000000..a915e190 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-gaming-2747455807.jpg differ diff --git a/preview-images/optimized/pre-antara-api-gaming.jpg b/preview-images/optimized/pre-antara-api-gaming.jpg deleted file mode 100644 index 0418db3b..00000000 Binary files a/preview-images/optimized/pre-antara-api-gaming.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-gateways-2093947886.jpg b/preview-images/optimized/pre-antara-api-gateways-2093947886.jpg new file mode 100644 index 00000000..89b69310 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-gateways-2093947886.jpg differ diff --git a/preview-images/optimized/pre-antara-api-gateways.jpg b/preview-images/optimized/pre-antara-api-gateways.jpg deleted file mode 100644 index 7e5f6e3e..00000000 Binary files a/preview-images/optimized/pre-antara-api-gateways.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-heir-949021129.jpg b/preview-images/optimized/pre-antara-api-heir-949021129.jpg new file mode 100644 index 00000000..7c451be5 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-heir-949021129.jpg differ diff --git a/preview-images/optimized/pre-antara-api-heir.jpg b/preview-images/optimized/pre-antara-api-heir.jpg deleted file mode 100644 index 0c4a2c60..00000000 Binary files a/preview-images/optimized/pre-antara-api-heir.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-musig-1975593721.jpg b/preview-images/optimized/pre-antara-api-musig-1975593721.jpg new file mode 100644 index 00000000..10cb59a7 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-musig-1975593721.jpg differ diff --git a/preview-images/optimized/pre-antara-api-musig.jpg b/preview-images/optimized/pre-antara-api-musig.jpg deleted file mode 100644 index 213ade39..00000000 Binary files a/preview-images/optimized/pre-antara-api-musig.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-oracles-79999268.jpg b/preview-images/optimized/pre-antara-api-oracles-79999268.jpg new file mode 100644 index 00000000..5ec4f72d Binary files /dev/null and b/preview-images/optimized/pre-antara-api-oracles-79999268.jpg differ diff --git a/preview-images/optimized/pre-antara-api-oracles.jpg b/preview-images/optimized/pre-antara-api-oracles.jpg deleted file mode 100644 index 999133f1..00000000 Binary files a/preview-images/optimized/pre-antara-api-oracles.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-payments-3866208613.jpg b/preview-images/optimized/pre-antara-api-payments-3866208613.jpg new file mode 100644 index 00000000..ba08f172 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-payments-3866208613.jpg differ diff --git a/preview-images/optimized/pre-antara-api-payments.jpg b/preview-images/optimized/pre-antara-api-payments.jpg deleted file mode 100644 index 48338dda..00000000 Binary files a/preview-images/optimized/pre-antara-api-payments.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-pegs-2871413435.jpg b/preview-images/optimized/pre-antara-api-pegs-2871413435.jpg new file mode 100644 index 00000000..8d9c1153 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-pegs-2871413435.jpg differ diff --git a/preview-images/optimized/pre-antara-api-pegs.jpg b/preview-images/optimized/pre-antara-api-pegs.jpg deleted file mode 100644 index 1f8c57cf..00000000 Binary files a/preview-images/optimized/pre-antara-api-pegs.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-prices-1408614040.jpg b/preview-images/optimized/pre-antara-api-prices-1408614040.jpg new file mode 100644 index 00000000..46a87593 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-prices-1408614040.jpg differ diff --git a/preview-images/optimized/pre-antara-api-prices.jpg b/preview-images/optimized/pre-antara-api-prices.jpg deleted file mode 100644 index e8bb6b5c..00000000 Binary files a/preview-images/optimized/pre-antara-api-prices.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-rewards-2039313383.jpg b/preview-images/optimized/pre-antara-api-rewards-2039313383.jpg new file mode 100644 index 00000000..7934bff5 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-rewards-2039313383.jpg differ diff --git a/preview-images/optimized/pre-antara-api-rewards.jpg b/preview-images/optimized/pre-antara-api-rewards.jpg deleted file mode 100644 index 4b60166f..00000000 Binary files a/preview-images/optimized/pre-antara-api-rewards.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-rogue-236992690.jpg b/preview-images/optimized/pre-antara-api-rogue-236992690.jpg new file mode 100644 index 00000000..1b0d3510 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-rogue-236992690.jpg differ diff --git a/preview-images/optimized/pre-antara-api-rogue.jpg b/preview-images/optimized/pre-antara-api-rogue.jpg deleted file mode 100644 index 52035a85..00000000 Binary files a/preview-images/optimized/pre-antara-api-rogue.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-sudoku-2783011240.jpg b/preview-images/optimized/pre-antara-api-sudoku-2783011240.jpg new file mode 100644 index 00000000..ced43721 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-sudoku-2783011240.jpg differ diff --git a/preview-images/optimized/pre-antara-api-sudoku.jpg b/preview-images/optimized/pre-antara-api-sudoku.jpg deleted file mode 100644 index 4a1b184c..00000000 Binary files a/preview-images/optimized/pre-antara-api-sudoku.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api-tokens-2271585185.jpg b/preview-images/optimized/pre-antara-api-tokens-2271585185.jpg new file mode 100644 index 00000000..4bc051c6 Binary files /dev/null and b/preview-images/optimized/pre-antara-api-tokens-2271585185.jpg differ diff --git a/preview-images/optimized/pre-antara-api-tokens.jpg b/preview-images/optimized/pre-antara-api-tokens.jpg deleted file mode 100644 index 26482949..00000000 Binary files a/preview-images/optimized/pre-antara-api-tokens.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-api.jpg b/preview-images/optimized/pre-antara-api.jpg deleted file mode 100644 index 8d7361eb..00000000 Binary files a/preview-images/optimized/pre-antara-api.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-setup-3501875781.jpg b/preview-images/optimized/pre-antara-setup-3501875781.jpg new file mode 100644 index 00000000..44a4f330 Binary files /dev/null and b/preview-images/optimized/pre-antara-setup-3501875781.jpg differ diff --git a/preview-images/optimized/pre-antara-setup-antara-customizations-3175968924.jpg b/preview-images/optimized/pre-antara-setup-antara-customizations-3175968924.jpg new file mode 100644 index 00000000..7c0ca633 Binary files /dev/null and b/preview-images/optimized/pre-antara-setup-antara-customizations-3175968924.jpg differ diff --git a/preview-images/optimized/pre-antara-setup-antara-customizations.jpg b/preview-images/optimized/pre-antara-setup-antara-customizations.jpg deleted file mode 100644 index 26e0c0e1..00000000 Binary files a/preview-images/optimized/pre-antara-setup-antara-customizations.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-setup.jpg b/preview-images/optimized/pre-antara-setup.jpg deleted file mode 100644 index ba50cf0d..00000000 Binary files a/preview-images/optimized/pre-antara-setup.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-557524942.jpg b/preview-images/optimized/pre-antara-tutorials-557524942.jpg new file mode 100644 index 00000000..4e41056a Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-557524942.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain-434397746.jpg b/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain-434397746.jpg new file mode 100644 index 00000000..e575a1ce Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain-434397746.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain.jpg b/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain.jpg deleted file mode 100644 index 27abaeab..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-activate-antara-smartchain.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-0-908254629.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-0-908254629.jpg new file mode 100644 index 00000000..6879837c Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-0-908254629.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-0.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-0.jpg deleted file mode 100644 index 1919b78c..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-0.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-1-1010318213.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-1-1010318213.jpg new file mode 100644 index 00000000..834e01a7 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-1-1010318213.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-1.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-1.jpg deleted file mode 100644 index c9717595..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-1.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-2-1697493419.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-2-1697493419.jpg new file mode 100644 index 00000000..24233f2b Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-2-1697493419.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-2.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-2.jpg deleted file mode 100644 index 8235fe0d..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-2.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-3-1499095173.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-3-1499095173.jpg new file mode 100644 index 00000000..cc771edf Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-3-1499095173.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-3.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-3.jpg deleted file mode 100644 index abd8dea8..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-3.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-4-2819813281.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-4-2819813281.jpg new file mode 100644 index 00000000..ae871ad5 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-4-2819813281.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-4.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-4.jpg deleted file mode 100644 index b8be03ef..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-4.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-5-3178144250.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-5-3178144250.jpg new file mode 100644 index 00000000..c69225e0 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-5-3178144250.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-5.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-5.jpg deleted file mode 100644 index 882002b6..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-5.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-6-1544065592.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-6-1544065592.jpg new file mode 100644 index 00000000..5341cd0c Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-advanced-series-6-1544065592.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-advanced-series-6.jpg b/preview-images/optimized/pre-antara-tutorials-advanced-series-6.jpg deleted file mode 100644 index be9ec91d..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-advanced-series-6.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0-962041359.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0-962041359.jpg new file mode 100644 index 00000000..0cd1b234 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0-962041359.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0.jpg deleted file mode 100644 index db5723b2..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-0.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1-3744501762.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1-3744501762.jpg new file mode 100644 index 00000000..21e0fd81 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1-3744501762.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1.jpg deleted file mode 100644 index 526b8e71..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-1.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2-453911767.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2-453911767.jpg new file mode 100644 index 00000000..436818c1 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2-453911767.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2.jpg deleted file mode 100644 index d770cb13..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-2.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3-4173138285.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3-4173138285.jpg new file mode 100644 index 00000000..b9272014 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3-4173138285.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3.jpg deleted file mode 100644 index 4b0c5883..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-3.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4-1909735831.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4-1909735831.jpg new file mode 100644 index 00000000..38f33593 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4-1909735831.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4.jpg b/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4.jpg deleted file mode 100644 index 550a7437..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-beginner-series-part-4.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial-1804964230.jpg b/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial-1804964230.jpg new file mode 100644 index 00000000..e408a05b Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial-1804964230.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial.jpg deleted file mode 100644 index c328be39..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-dilithium-module-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial-2793687793.jpg b/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial-2793687793.jpg new file mode 100644 index 00000000..3214bf1d Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial-2793687793.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial.jpg deleted file mode 100644 index 10447e83..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-gateways-module-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials-2849233207.jpg b/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials-2849233207.jpg new file mode 100644 index 00000000..c25cbfdb Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials-2849233207.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials.jpg b/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials.jpg deleted file mode 100644 index 623c159c..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-introduction-to-antara-tutorials.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial-1610047040.jpg b/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial-1610047040.jpg new file mode 100644 index 00000000..4ce754ea Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial-1610047040.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial.jpg deleted file mode 100644 index 84b2d849..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-musig-module-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i-1414119697.jpg b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i-1414119697.jpg new file mode 100644 index 00000000..255e0963 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i-1414119697.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg deleted file mode 100644 index 0d938909..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii-2166385832.jpg b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii-2166385832.jpg new file mode 100644 index 00000000..e29a8651 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii-2166385832.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg b/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg deleted file mode 100644 index 0f4c54cc..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial-2911259589.jpg b/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial-2911259589.jpg new file mode 100644 index 00000000..77f102f5 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial-2911259589.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial.jpg deleted file mode 100644 index bb9f6803..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-pegs-module-creator-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial-3522756855.jpg b/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial-3522756855.jpg new file mode 100644 index 00000000..68a6bca5 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial-3522756855.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial.jpg deleted file mode 100644 index 65cddb6e..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-pegs-module-user-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial-989732063.jpg b/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial-989732063.jpg new file mode 100644 index 00000000..258968c5 Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial-989732063.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial.jpg b/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial.jpg deleted file mode 100644 index ce6dc144..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-rogue-module-tutorial.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara-3488537599.jpg b/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara-3488537599.jpg new file mode 100644 index 00000000..7334ed7e Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara-3488537599.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara.jpg b/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara.jpg deleted file mode 100644 index 11a37c21..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-test-use-write-integrate-antara.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses-3213894584.jpg b/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses-3213894584.jpg new file mode 100644 index 00000000..d399e35e Binary files /dev/null and b/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses-3213894584.jpg differ diff --git a/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses.jpg b/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses.jpg deleted file mode 100644 index 6a6e4547..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials-understanding-antara-addresses.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara-tutorials.jpg b/preview-images/optimized/pre-antara-tutorials.jpg deleted file mode 100644 index ada48b1c..00000000 Binary files a/preview-images/optimized/pre-antara-tutorials.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-antara.jpg b/preview-images/optimized/pre-antara.jpg deleted file mode 100644 index 21afa8a9..00000000 Binary files a/preview-images/optimized/pre-antara.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-3787958327.jpg b/preview-images/optimized/pre-historical-3787958327.jpg new file mode 100644 index 00000000..d1b31e34 Binary files /dev/null and b/preview-images/optimized/pre-historical-3787958327.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-441216941.jpg b/preview-images/optimized/pre-historical-cc-jl-441216941.jpg new file mode 100644 index 00000000..04df9598 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-441216941.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter00-2340157130.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter00-2340157130.jpg new file mode 100644 index 00000000..00437da7 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter00-2340157130.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter00.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter00.jpg deleted file mode 100644 index 3e936160..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter00.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter01-1932437987.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter01-1932437987.jpg new file mode 100644 index 00000000..47962ce1 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter01-1932437987.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter01.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter01.jpg deleted file mode 100644 index 9c632105..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter01.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter02-3716561139.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter02-3716561139.jpg new file mode 100644 index 00000000..de320622 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter02-3716561139.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter02.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter02.jpg deleted file mode 100644 index 5a6310c3..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter02.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter03-676036756.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter03-676036756.jpg new file mode 100644 index 00000000..04545e1f Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter03-676036756.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter03.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter03.jpg deleted file mode 100644 index 3f5ec177..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter03.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter04-488134623.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter04-488134623.jpg new file mode 100644 index 00000000..8eef5f2e Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter04-488134623.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter04.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter04.jpg deleted file mode 100644 index 8065e85c..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter04.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter05-2759819640.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter05-2759819640.jpg new file mode 100644 index 00000000..16dcc328 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter05-2759819640.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter05.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter05.jpg deleted file mode 100644 index 1dd2df19..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter05.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter06-41729292.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter06-41729292.jpg new file mode 100644 index 00000000..74d791c4 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter06-41729292.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter06.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter06.jpg deleted file mode 100644 index e020590d..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter06.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter07-1222409524.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter07-1222409524.jpg new file mode 100644 index 00000000..c550339f Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter07-1222409524.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter07.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter07.jpg deleted file mode 100644 index 86f41e3d..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter07.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter08-399139344.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter08-399139344.jpg new file mode 100644 index 00000000..b2d84bff Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter08-399139344.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter08.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter08.jpg deleted file mode 100644 index e903eb24..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter08.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter09-366937812.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter09-366937812.jpg new file mode 100644 index 00000000..26d9fe39 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter09-366937812.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter09.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter09.jpg deleted file mode 100644 index 4846ed6b..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter09.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter10-1210873061.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter10-1210873061.jpg new file mode 100644 index 00000000..5ddce067 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter10-1210873061.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter10.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter10.jpg deleted file mode 100644 index 8cfc4e89..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter10.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter11-865671553.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter11-865671553.jpg new file mode 100644 index 00000000..8fe77d1f Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter11-865671553.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter11.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter11.jpg deleted file mode 100644 index 8cd33ddc..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter11.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter12-2430304571.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter12-2430304571.jpg new file mode 100644 index 00000000..8d5104e4 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter12-2430304571.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter12.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter12.jpg deleted file mode 100644 index 37cdce8c..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter12.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter13-12891274.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter13-12891274.jpg new file mode 100644 index 00000000..065b425e Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter13-12891274.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter13.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter13.jpg deleted file mode 100644 index c2c01607..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter13.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter14-2295115755.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter14-2295115755.jpg new file mode 100644 index 00000000..b2f9c710 Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter14-2295115755.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter14.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter14.jpg deleted file mode 100644 index c88d3bd2..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter14.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter15-731267651.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter15-731267651.jpg new file mode 100644 index 00000000..e648befb Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-chapter15-731267651.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-chapter15.jpg b/preview-images/optimized/pre-historical-cc-jl-chapter15.jpg deleted file mode 100644 index 1dfe9669..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-chapter15.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl-faq-2751179578.jpg b/preview-images/optimized/pre-historical-cc-jl-faq-2751179578.jpg new file mode 100644 index 00000000..1215633c Binary files /dev/null and b/preview-images/optimized/pre-historical-cc-jl-faq-2751179578.jpg differ diff --git a/preview-images/optimized/pre-historical-cc-jl-faq.jpg b/preview-images/optimized/pre-historical-cc-jl-faq.jpg deleted file mode 100644 index b5b8f106..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl-faq.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-cc-jl.jpg b/preview-images/optimized/pre-historical-cc-jl.jpg deleted file mode 100644 index df6a6735..00000000 Binary files a/preview-images/optimized/pre-historical-cc-jl.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-4041267999.jpg b/preview-images/optimized/pre-historical-whitepaper-4041267999.jpg new file mode 100644 index 00000000..2c5056b1 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-4041267999.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter1-2914178438.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter1-2914178438.jpg new file mode 100644 index 00000000..3eabd223 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter1-2914178438.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter1.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter1.jpg deleted file mode 100644 index 25d745f3..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter1.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter2-257889138.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter2-257889138.jpg new file mode 100644 index 00000000..a136aa0d Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter2-257889138.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter2.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter2.jpg deleted file mode 100644 index 3be73064..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter2.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter3-2563374765.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter3-2563374765.jpg new file mode 100644 index 00000000..427c8864 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter3-2563374765.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter3.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter3.jpg deleted file mode 100644 index 545ff77f..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter3.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter4-895929079.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter4-895929079.jpg new file mode 100644 index 00000000..565b9c42 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter4-895929079.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter4.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter4.jpg deleted file mode 100644 index 97ff2e7b..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter4.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter5-44195156.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter5-44195156.jpg new file mode 100644 index 00000000..be266c81 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter5-44195156.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter5.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter5.jpg deleted file mode 100644 index fb002bf7..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter5.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter6-3296714751.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter6-3296714751.jpg new file mode 100644 index 00000000..b051ff67 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter6-3296714751.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter6.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter6.jpg deleted file mode 100644 index 7ae44665..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter6.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter7-604978196.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter7-604978196.jpg new file mode 100644 index 00000000..785f9fb4 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter7-604978196.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter7.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter7.jpg deleted file mode 100644 index 2e778f91..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter7.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter8-1978382335.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter8-1978382335.jpg new file mode 100644 index 00000000..5cacc84f Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-chapter8-1978382335.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-chapter8.jpg b/preview-images/optimized/pre-historical-whitepaper-chapter8.jpg deleted file mode 100644 index 41bbd49e..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-chapter8.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper-references-3033678080.jpg b/preview-images/optimized/pre-historical-whitepaper-references-3033678080.jpg new file mode 100644 index 00000000..3c5b7154 Binary files /dev/null and b/preview-images/optimized/pre-historical-whitepaper-references-3033678080.jpg differ diff --git a/preview-images/optimized/pre-historical-whitepaper-references.jpg b/preview-images/optimized/pre-historical-whitepaper-references.jpg deleted file mode 100644 index 7b844e89..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper-references.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical-whitepaper.jpg b/preview-images/optimized/pre-historical-whitepaper.jpg deleted file mode 100644 index dc321a97..00000000 Binary files a/preview-images/optimized/pre-historical-whitepaper.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-historical.jpg b/preview-images/optimized/pre-historical.jpg deleted file mode 100644 index 40384793..00000000 Binary files a/preview-images/optimized/pre-historical.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-2453941942.jpg b/preview-images/optimized/pre-komodo-2453941942.jpg new file mode 100644 index 00000000..ee3c1bbf Binary files /dev/null and b/preview-images/optimized/pre-komodo-2453941942.jpg differ diff --git a/preview-images/optimized/pre-komodo-active-user-reward-3498957353.jpg b/preview-images/optimized/pre-komodo-active-user-reward-3498957353.jpg new file mode 100644 index 00000000..b74094f8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-active-user-reward-3498957353.jpg differ diff --git a/preview-images/optimized/pre-komodo-active-user-reward.jpg b/preview-images/optimized/pre-komodo-active-user-reward.jpg deleted file mode 100644 index bfb4fd81..00000000 Binary files a/preview-images/optimized/pre-komodo-active-user-reward.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-block-1m-changes-2175831632.jpg b/preview-images/optimized/pre-komodo-block-1m-changes-2175831632.jpg new file mode 100644 index 00000000..105feb77 Binary files /dev/null and b/preview-images/optimized/pre-komodo-block-1m-changes-2175831632.jpg differ diff --git a/preview-images/optimized/pre-komodo-block-1m-changes.jpg b/preview-images/optimized/pre-komodo-block-1m-changes.jpg deleted file mode 100644 index 884b2f7c..00000000 Binary files a/preview-images/optimized/pre-komodo-block-1m-changes.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-coin-emission-2549350305.jpg b/preview-images/optimized/pre-komodo-coin-emission-2549350305.jpg new file mode 100644 index 00000000..41b0fdca Binary files /dev/null and b/preview-images/optimized/pre-komodo-coin-emission-2549350305.jpg differ diff --git a/preview-images/optimized/pre-komodo-coin-emission.jpg b/preview-images/optimized/pre-komodo-coin-emission.jpg deleted file mode 100644 index 3a7ab3bf..00000000 Binary files a/preview-images/optimized/pre-komodo-coin-emission.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-convert-pubkey-address-2905195395.jpg b/preview-images/optimized/pre-komodo-convert-pubkey-address-2905195395.jpg new file mode 100644 index 00000000..b2bb891e Binary files /dev/null and b/preview-images/optimized/pre-komodo-convert-pubkey-address-2905195395.jpg differ diff --git a/preview-images/optimized/pre-komodo-convert-pubkey-address.jpg b/preview-images/optimized/pre-komodo-convert-pubkey-address.jpg deleted file mode 100644 index 52986c8e..00000000 Binary files a/preview-images/optimized/pre-komodo-convert-pubkey-address.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-330624540.jpg b/preview-images/optimized/pre-komodo-defi-framework-330624540.jpg new file mode 100644 index 00000000..86caef5d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-330624540.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-2850307920.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-2850307920.jpg new file mode 100644 index 00000000..e7e2376d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-2850307920.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-155134463.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-155134463.jpg new file mode 100644 index 00000000..f5c6cc25 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-155134463.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation-2114579195.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation-2114579195.jpg new file mode 100644 index 00000000..cd092f5f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation-2114579195.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation.jpg deleted file mode 100644 index 16ae467f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-activation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning-447061071.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning-447061071.jpg new file mode 100644 index 00000000..ba445ffe Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning-447061071.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning.jpg deleted file mode 100644 index dc7b5f99..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-lightning.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts-787207211.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts-787207211.jpg new file mode 100644 index 00000000..ffea2e82 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts-787207211.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts.jpg deleted file mode 100644 index 8aacaa14..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-nfts.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders-3890162205.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders-3890162205.jpg new file mode 100644 index 00000000..017156da Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders-3890162205.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders.jpg deleted file mode 100644 index 7c7dd7ac..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-orders.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-3023832365.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-3023832365.jpg new file mode 100644 index 00000000..e194f2d0 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-3023832365.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events-1233602732.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events-1233602732.jpg new file mode 100644 index 00000000..37b4900b Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events-1233602732.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg deleted file mode 100644 index 99f78ff3..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events-1334269687.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events-1334269687.jpg new file mode 100644 index 00000000..80ec9ff4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events-1334269687.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg deleted file mode 100644 index cc224e47..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps.jpg deleted file mode 100644 index 10f86ec8..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet-1331375096.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet-1331375096.jpg new file mode 100644 index 00000000..6d6c6b0e Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet-1331375096.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet.jpg deleted file mode 100644 index 0bcb878b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-common_structures.jpg deleted file mode 100644 index b7b07cbe..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-common_structures.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-3840475833.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-3840475833.jpg new file mode 100644 index 00000000..b664e4f0 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-3840475833.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps-754682421.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps-754682421.jpg new file mode 100644 index 00000000..4f11ccdf Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps-754682421.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps.jpg deleted file mode 100644 index a6926fc1..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-active_swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter-1309363952.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter-1309363952.jpg new file mode 100644 index 00000000..b0695e92 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter-1309363952.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg deleted file mode 100644 index ceea0dc1..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey-3089385803.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey-3089385803.jpg new file mode 100644 index 00000000..e389217f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey-3089385803.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg deleted file mode 100644 index 807c3563..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests-1451757182.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests-1451757182.jpg new file mode 100644 index 00000000..ed746abc Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests-1451757182.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests.jpg deleted file mode 100644 index b34346d5..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-batch_requests.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders-1795579084.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders-1795579084.jpg new file mode 100644 index 00000000..463a26c2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders-1795579084.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders.jpg deleted file mode 100644 index f3dec22a..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-best_orders.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy-293673431.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy-293673431.jpg new file mode 100644 index 00000000..19435c4d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy-293673431.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy.jpg deleted file mode 100644 index 393d5e54..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-buy.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders-77965868.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders-77965868.jpg new file mode 100644 index 00000000..fb099bd2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders-77965868.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg deleted file mode 100644 index bc9bd0c2..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order-1838179933.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order-1838179933.jpg new file mode 100644 index 00000000..e720de94 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order-1838179933.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order.jpg deleted file mode 100644 index 508d4a3d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-cancel_order.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation-3347071182.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation-3347071182.jpg new file mode 100644 index 00000000..c3c8f400 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation-3347071182.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation.jpg deleted file mode 100644 index b98960c3..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coin_activation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start-2613294757.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start-2613294757.jpg new file mode 100644 index 00000000..deddca71 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start-2613294757.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg deleted file mode 100644 index 48c07d97..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address-3426776345.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address-3426776345.jpg new file mode 100644 index 00000000..fdbf19a8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address-3426776345.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg deleted file mode 100644 index 2651e88d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress-2382411790.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress-2382411790.jpg new file mode 100644 index 00000000..de464d8f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress-2382411790.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress.jpg deleted file mode 100644 index 3d1ddb4a..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-convertaddress.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin-3677150677.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin-3677150677.jpg new file mode 100644 index 00000000..e0a09938 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin-3677150677.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin.jpg deleted file mode 100644 index e87c65c8..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-disable_coin.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins-499785809.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins-499785809.jpg new file mode 100644 index 00000000..b7964e53 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins-499785809.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg deleted file mode 100644 index 4807c546..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh-635938107.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh-635938107.jpg new file mode 100644 index 00000000..0c031d85 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh-635938107.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg deleted file mode 100644 index e302ef7c..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics-476564779.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics-476564779.jpg new file mode 100644 index 00000000..8cd53c94 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics-476564779.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg deleted file mode 100644 index 19519797..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers-3052915927.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers-3052915927.jpg new file mode 100644 index 00000000..dd612b03 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers-3052915927.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg deleted file mode 100644 index 225eaf01..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id-1958905620.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id-1958905620.jpg new file mode 100644 index 00000000..cfa165b8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id-1958905620.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg deleted file mode 100644 index 96cbcd5e..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info-885956695.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info-885956695.jpg new file mode 100644 index 00000000..f8f7aa6c Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info-885956695.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg deleted file mode 100644 index 31e1c66d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh-3855592762.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh-3855592762.jpg new file mode 100644 index 00000000..74fa7131 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh-3855592762.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg deleted file mode 100644 index eb6c515f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee-2310144901.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee-2310144901.jpg new file mode 100644 index 00000000..a7107010 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee-2310144901.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg deleted file mode 100644 index 71c350fd..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help-373823048.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help-373823048.jpg new file mode 100644 index 00000000..ffcb513f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help-373823048.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help.jpg deleted file mode 100644 index b7b482a7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-help.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps-699361456.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps-699361456.jpg new file mode 100644 index 00000000..6f570f30 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps-699361456.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps.jpg deleted file mode 100644 index 4ef3b976..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-import_swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info-3001120312.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info-3001120312.jpg new file mode 100644 index 00000000..49df5ed1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info-3001120312.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg deleted file mode 100644 index dd9bc1a3..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys-2478519554.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys-2478519554.jpg new file mode 100644 index 00000000..8eb5f966 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys-2478519554.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg deleted file mode 100644 index 436e4b55..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol-3170793171.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol-3170793171.jpg new file mode 100644 index 00000000..59f7aa25 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol-3170793171.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg deleted file mode 100644 index 95c5b82b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics-3811153196.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics-3811153196.jpg new file mode 100644 index 00000000..d5d49770 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics-3811153196.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics.jpg deleted file mode 100644 index 603168a7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-metrics.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol-1507043886.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol-1507043886.jpg new file mode 100644 index 00000000..9ccc94a9 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol-1507043886.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg deleted file mode 100644 index 347839c9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance-2502509667.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance-2502509667.jpg new file mode 100644 index 00000000..8df1959a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance-2502509667.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance.jpg deleted file mode 100644 index 4ba735e3..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_balance.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders-727646760.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders-727646760.jpg new file mode 100644 index 00000000..c37e653a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders-727646760.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders.jpg deleted file mode 100644 index 7b69655a..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_orders.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps-389229144.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps-389229144.jpg new file mode 100644 index 00000000..ead5800d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps-389229144.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg deleted file mode 100644 index 612306a6..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status-633613739.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status-633613739.jpg new file mode 100644 index 00000000..9ebdef42 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status-633613739.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg deleted file mode 100644 index a3ac6117..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history-3229236155.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history-3229236155.jpg new file mode 100644 index 00000000..6ca4f777 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history-3229236155.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg deleted file mode 100644 index fb32b088..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status-930219666.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status-930219666.jpg new file mode 100644 index 00000000..1c8cdcbb Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status-930219666.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status.jpg deleted file mode 100644 index 14e5421f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-order_status.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook-3158026256.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook-3158026256.jpg new file mode 100644 index 00000000..5b66776a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook-3158026256.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook.jpg deleted file mode 100644 index 90310bc0..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth-2119719434.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth-2119719434.jpg new file mode 100644 index 00000000..d671e4ca Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth-2119719434.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg deleted file mode 100644 index 7f7b0d17..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter-514479563.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter-514479563.jpg new file mode 100644 index 00000000..5f02271c Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter-514479563.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg deleted file mode 100644 index 6ca8b907..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note-2451532720.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note-2451532720.jpg new file mode 100644 index 00000000..b603dacd Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note-2451532720.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg deleted file mode 100644 index 12451fbe..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap-4166720493.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap-4166720493.jpg new file mode 100644 index 00000000..9493c717 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap-4166720493.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg deleted file mode 100644 index 12af19f5..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell-395966795.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell-395966795.jpg new file mode 100644 index 00000000..fae10cca Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell-395966795.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell.jpg deleted file mode 100644 index 8555ccf7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-sell.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction-2955171219.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction-2955171219.jpg new file mode 100644 index 00000000..d629885c Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction-2955171219.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg deleted file mode 100644 index e5c6f1f7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations-3810167133.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations-3810167133.jpg new file mode 100644 index 00000000..4e12b16a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations-3810167133.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg deleted file mode 100644 index 2fe35f2e..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization-3082399964.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization-3082399964.jpg new file mode 100644 index 00000000..3a1d535e Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization-3082399964.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg deleted file mode 100644 index 689825a9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice-1546453540.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice-1546453540.jpg new file mode 100644 index 00000000..8989955f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice-1546453540.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice.jpg deleted file mode 100644 index 2f46bf66..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-setprice.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key-739917188.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key-739917188.jpg new file mode 100644 index 00000000..a2ab2fae Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key-739917188.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg deleted file mode 100644 index fad51303..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop-4165609583.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop-4165609583.jpg new file mode 100644 index 00000000..9ce6b2d4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop-4165609583.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop.jpg deleted file mode 100644 index 0cca278f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-stop.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage-158733935.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage-158733935.jpg new file mode 100644 index 00000000..bb0d7405 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage-158733935.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg deleted file mode 100644 index e30835a9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys-1349503962.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys-1349503962.jpg new file mode 100644 index 00000000..1a31e9cb Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys-1349503962.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg deleted file mode 100644 index 166a0b43..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order-3723160043.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order-3723160043.jpg new file mode 100644 index 00000000..4a80b6c4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order-3723160043.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg deleted file mode 100644 index eadaa0ab..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress-1507012887.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress-1507012887.jpg new file mode 100644 index 00000000..f6fb3d37 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress-1507012887.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress.jpg deleted file mode 100644 index a0dfc08c..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-validateaddress.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version-3748373024.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version-3748373024.jpg new file mode 100644 index 00000000..590cfd73 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version-3748373024.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version.jpg deleted file mode 100644 index 1059aa19..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-version.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw-890170272.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw-890170272.jpg new file mode 100644 index 00000000..02801d9a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw-890170272.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw.jpg deleted file mode 100644 index 44841899..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy-withdraw.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-legacy.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-legacy.jpg deleted file mode 100644 index 3b55da50..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-legacy.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-161443140.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-161443140.jpg new file mode 100644 index 00000000..ca514e92 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-161443140.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation-3134425592.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation-3134425592.jpg new file mode 100644 index 00000000..005f09cf Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation-3134425592.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation.jpg deleted file mode 100644 index d6fe4059..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_delegation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat-3572795751.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat-3572795751.jpg new file mode 100644 index 00000000..0dcefff8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat-3572795751.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg deleted file mode 100644 index 4bd9f011..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders-652415415.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders-652415415.jpg new file mode 100644 index 00000000..2d3f8004 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders-652415415.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders.jpg deleted file mode 100644 index ed71e5dd..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-best_orders.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-737230988.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-737230988.jpg new file mode 100644 index 00000000..34f3f8ee Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-737230988.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp-3569363414.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp-3569363414.jpg new file mode 100644 index 00000000..6515bab3 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp-3569363414.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg deleted file mode 100644 index ce155999..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount-300179839.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount-300179839.jpg new file mode 100644 index 00000000..eae6dd00 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount-300179839.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg deleted file mode 100644 index 13f98f8d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management-802824538.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management-802824538.jpg new file mode 100644 index 00000000..bcdb4355 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management-802824538.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg deleted file mode 100644 index 7ff6d23d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview-2301684677.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview-2301684677.jpg new file mode 100644 index 00000000..163d6da4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview-2301684677.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg deleted file mode 100644 index da1bf6e6..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-2047464531.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-2047464531.jpg new file mode 100644 index 00000000..5064db47 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-2047464531.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation-3730261304.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation-3730261304.jpg new file mode 100644 index 00000000..8ad48d08 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation-3730261304.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg deleted file mode 100644 index 20296ef7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels-3787397205.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels-3787397205.jpg new file mode 100644 index 00000000..96cbb977 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels-3787397205.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg deleted file mode 100644 index da3f3536..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes-2944325057.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes-2944325057.jpg new file mode 100644 index 00000000..b90089e4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes-2944325057.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg deleted file mode 100644 index 3d201f8b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments-1110123739.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments-1110123739.jpg new file mode 100644 index 00000000..2aa61125 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments-1110123739.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg deleted file mode 100644 index 586469c3..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning.jpg deleted file mode 100644 index f8ba9b27..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-lightning.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol-1789884510.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol-1789884510.jpg new file mode 100644 index 00000000..0982161a Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol-1789884510.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg deleted file mode 100644 index 03cf1c92..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-3937377185.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-3937377185.jpg new file mode 100644 index 00000000..a5c0ec72 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-3937377185.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db-1237219627.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db-1237219627.jpg new file mode 100644 index 00000000..4854ceb1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db-1237219627.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg deleted file mode 100644 index c312175a..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list-4152571562.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list-4152571562.jpg new file mode 100644 index 00000000..065b614d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list-4152571562.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg deleted file mode 100644 index 713cc035..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata-4059112531.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata-4059112531.jpg new file mode 100644 index 00000000..87674093 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata-4059112531.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg deleted file mode 100644 index 36cd42e7..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers-2157425007.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers-2157425007.jpg new file mode 100644 index 00000000..3b8d63d6 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers-2157425007.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg deleted file mode 100644 index 1c73fab1..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables-4202278143.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables-4202278143.jpg new file mode 100644 index 00000000..669bf9f3 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables-4202278143.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg deleted file mode 100644 index c9495877..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata-2476320241.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata-2476320241.jpg new file mode 100644 index 00000000..acde8bcf Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata-2476320241.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg deleted file mode 100644 index 1434faa4..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft-4043058148.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft-4043058148.jpg new file mode 100644 index 00000000..8bdc2eac Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft-4043058148.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg deleted file mode 100644 index a65b9bc1..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft-992781553.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft-992781553.jpg new file mode 100644 index 00000000..a9d927a3 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft-992781553.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg deleted file mode 100644 index 4e3f6b84..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg deleted file mode 100644 index 62ee170c..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance-2722490907.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance-2722490907.jpg new file mode 100644 index 00000000..e6782d1f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance-2722490907.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg deleted file mode 100644 index 00fe40b6..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account-122533799.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account-122533799.jpg new file mode 100644 index 00000000..1391fe18 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account-122533799.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg deleted file mode 100644 index 3374cd55..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum-809154044.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum-809154044.jpg new file mode 100644 index 00000000..bc66ab85 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum-809154044.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg deleted file mode 100644 index 88799249..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo-3232471726.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo-3232471726.jpg new file mode 100644 index 00000000..df73fccc Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo-3232471726.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg deleted file mode 100644 index 6f1f53c8..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor-666231596.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor-666231596.jpg new file mode 100644 index 00000000..2dc43b16 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor-666231596.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg deleted file mode 100644 index 370287b0..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw-1912125596.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw-1912125596.jpg new file mode 100644 index 00000000..b284b32f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw-1912125596.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg deleted file mode 100644 index 063afa36..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-401186782.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-401186782.jpg new file mode 100644 index 00000000..fea03c0e Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-401186782.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation-2023662594.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation-2023662594.jpg new file mode 100644 index 00000000..7ba378b2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation-2023662594.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg deleted file mode 100644 index 1291b44e..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history-3552325395.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history-3552325395.jpg new file mode 100644 index 00000000..2ca36842 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history-3552325395.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg deleted file mode 100644 index 862742ba..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg deleted file mode 100644 index 74723bd9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev.jpg deleted file mode 100644 index 7b1ce567..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-dev.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens-1440778307.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens-1440778307.jpg new file mode 100644 index 00000000..c9ef2b8b Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens-1440778307.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg deleted file mode 100644 index d921f848..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20-2154377381.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20-2154377381.jpg new file mode 100644 index 00000000..a010b2c7 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20-2154377381.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20.jpg deleted file mode 100644 index 790637db..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_erc20.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens-2849570415.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens-2849570415.jpg new file mode 100644 index 00000000..27822e21 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens-2849570415.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg deleted file mode 100644 index 215b634e..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp-1551541576.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp-1551541576.jpg new file mode 100644 index 00000000..9eddf700 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp-1551541576.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp.jpg deleted file mode 100644 index 413cf362..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_slp.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token-142898505.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token-142898505.jpg new file mode 100644 index 00000000..e8a9b869 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token-142898505.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg deleted file mode 100644 index d4ee3a89..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets-3046650939.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets-3046650939.jpg new file mode 100644 index 00000000..0e2da170 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets-3046650939.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg deleted file mode 100644 index 57814602..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key-2350736898.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key-2350736898.jpg new file mode 100644 index 00000000..d11b9d64 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key-2350736898.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key.jpg deleted file mode 100644 index de6bb09f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash-1531038858.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash-1531038858.jpg new file mode 100644 index 00000000..224f6438 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash-1531038858.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg deleted file mode 100644 index 41934fdf..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction-1047777588.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction-1047777588.jpg new file mode 100644 index 00000000..f964f488 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction-1047777588.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg deleted file mode 100644 index 2d399c18..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos-2362117921.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos-2362117921.jpg new file mode 100644 index 00000000..0b3521c6 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos-2362117921.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg deleted file mode 100644 index ab553aa9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing-3293362873.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing-3293362873.jpg new file mode 100644 index 00000000..651d3157 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing-3293362873.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing.jpg deleted file mode 100644 index e065563b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-message_signing.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps-705917205.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps-705917205.jpg new file mode 100644 index 00000000..09b0ad70 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps-705917205.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg deleted file mode 100644 index 1ddb2a75..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history-1759955145.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history-1759955145.jpg new file mode 100644 index 00000000..f7d0ba83 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history-1759955145.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history.jpg deleted file mode 100644 index 854bef1f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-my_tx_history.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook-3179390631.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook-3179390631.jpg new file mode 100644 index 00000000..a7d14476 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook-3179390631.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook.jpg deleted file mode 100644 index 05bef3b1..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-orderbook.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data-3014890027.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data-3014890027.jpg new file mode 100644 index 00000000..0528e4e4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data-3014890027.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg deleted file mode 100644 index 8956ffdd..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation-1516100793.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation-1516100793.jpg new file mode 100644 index 00000000..c279474e Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation-1516100793.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation.jpg deleted file mode 100644 index 00b9695d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_delegation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat-2151522901.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat-2151522901.jpg new file mode 100644 index 00000000..1a2525c2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat-2151522901.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg deleted file mode 100644 index be01d6c5..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction-3264705103.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction-3264705103.jpg new file mode 100644 index 00000000..85e331a0 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction-3264705103.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg deleted file mode 100644 index 43ac7f43..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot-1609456080.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot-1609456080.jpg new file mode 100644 index 00000000..4f974282 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot-1609456080.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg deleted file mode 100644 index 3c642dea..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection-1901016822.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection-1901016822.jpg new file mode 100644 index 00000000..b2e9c429 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection-1901016822.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg deleted file mode 100644 index 675570c8..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot-2998197087.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot-2998197087.jpg new file mode 100644 index 00000000..6e72d441 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot-2998197087.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg deleted file mode 100644 index b2e10b4d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection-4256989422.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection-4256989422.jpg new file mode 100644 index 00000000..f6174691 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection-4256989422.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg deleted file mode 100644 index c415f028..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts-89387043.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts-89387043.jpg new file mode 100644 index 00000000..ff8eeef1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts-89387043.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg deleted file mode 100644 index 04dff5e9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage-3171113132.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage-3171113132.jpg new file mode 100644 index 00000000..506d516d Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage-3171113132.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage.jpg deleted file mode 100644 index d623311b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-trade_preimage.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection-3018148710.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection-3018148710.jpg new file mode 100644 index 00000000..ade09031 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection-3018148710.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg deleted file mode 100644 index 15860de9..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw-2075631168.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw-2075631168.jpg new file mode 100644 index 00000000..426907eb Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw-2075631168.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw.jpg deleted file mode 100644 index 941cc38b..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20-withdraw.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api-v20.jpg b/preview-images/optimized/pre-komodo-defi-framework-api-v20.jpg deleted file mode 100644 index a5f4958d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api-v20.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-api.jpg b/preview-images/optimized/pre-komodo-defi-framework-api.jpg deleted file mode 100644 index a7fbdead..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-api.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-changelog-1046684114.jpg b/preview-images/optimized/pre-komodo-defi-framework-changelog-1046684114.jpg new file mode 100644 index 00000000..bceb6173 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-changelog-1046684114.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-changelog.jpg b/preview-images/optimized/pre-komodo-defi-framework-changelog.jpg deleted file mode 100644 index d0c401e4..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-changelog.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-setup-2584083581.jpg b/preview-images/optimized/pre-komodo-defi-framework-setup-2584083581.jpg new file mode 100644 index 00000000..3ae18bfd Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-setup-2584083581.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json-1657103718.jpg b/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json-1657103718.jpg new file mode 100644 index 00000000..6d78ca13 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json-1657103718.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json.jpg b/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json.jpg deleted file mode 100644 index 21267ddd..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-setup-configure-mm2-json.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-setup.jpg b/preview-images/optimized/pre-komodo-defi-framework-setup.jpg deleted file mode 100644 index 881c781f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-setup.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-797828077.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-797828077.jpg new file mode 100644 index 00000000..cd5f11c6 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-797828077.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information-727219591.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information-727219591.jpg new file mode 100644 index 00000000..aaa07fbc Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information-727219591.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information.jpg deleted file mode 100644 index c0289286..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-additional-information.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram-2423430646.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram-2423430646.jpg new file mode 100644 index 00000000..c38d5358 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram-2423430646.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg deleted file mode 100644 index 6b21f7df..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics-2251943159.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics-2251943159.jpg new file mode 100644 index 00000000..7950d9c9 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics-2251943159.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics.jpg deleted file mode 100644 index fde42df8..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-metrics.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough-926853183.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough-926853183.jpg new file mode 100644 index 00000000..c4080bc9 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough-926853183.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg deleted file mode 100644 index 1eebba98..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update-4102323242.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update-4102323242.jpg new file mode 100644 index 00000000..4f2632a6 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update-4102323242.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update.jpg deleted file mode 100644 index 9e3ebbdc..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-coins-file-update.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider-3437911842.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider-3437911842.jpg new file mode 100644 index 00000000..687238c2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider-3437911842.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg deleted file mode 100644 index 5f3ee4c6..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source-3233383454.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source-3233383454.jpg new file mode 100644 index 00000000..ab01df5f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source-3233383454.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg deleted file mode 100644 index ee5c6f83..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin-1409670792.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin-1409670792.jpg new file mode 100644 index 00000000..dd11496f Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin-1409670792.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg deleted file mode 100644 index 31ba537d..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database-759455021.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database-759455021.jpg new file mode 100644 index 00000000..8a484939 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database-759455021.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg deleted file mode 100644 index 9543e988..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws-3288674343.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws-3288674343.jpg new file mode 100644 index 00000000..df382141 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws-3288674343.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg deleted file mode 100644 index 889e8481..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console-2335968276.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console-2335968276.jpg new file mode 100644 index 00000000..435dfe32 Binary files /dev/null and b/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console-2335968276.jpg differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg deleted file mode 100644 index d2c4c678..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework-tutorials.jpg b/preview-images/optimized/pre-komodo-defi-framework-tutorials.jpg deleted file mode 100644 index d5bcd4c6..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework-tutorials.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-defi-framework.jpg b/preview-images/optimized/pre-komodo-defi-framework.jpg deleted file mode 100644 index 2ad2877f..00000000 Binary files a/preview-images/optimized/pre-komodo-defi-framework.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-dpow-conf-2585878297.jpg b/preview-images/optimized/pre-komodo-dpow-conf-2585878297.jpg new file mode 100644 index 00000000..9fa400ae Binary files /dev/null and b/preview-images/optimized/pre-komodo-dpow-conf-2585878297.jpg differ diff --git a/preview-images/optimized/pre-komodo-dpow-conf.jpg b/preview-images/optimized/pre-komodo-dpow-conf.jpg deleted file mode 100644 index 21f5ee49..00000000 Binary files a/preview-images/optimized/pre-komodo-dpow-conf.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-encrypt-wallet-3898553506.jpg b/preview-images/optimized/pre-komodo-encrypt-wallet-3898553506.jpg new file mode 100644 index 00000000..ab736070 Binary files /dev/null and b/preview-images/optimized/pre-komodo-encrypt-wallet-3898553506.jpg differ diff --git a/preview-images/optimized/pre-komodo-encrypt-wallet.jpg b/preview-images/optimized/pre-komodo-encrypt-wallet.jpg deleted file mode 100644 index 31cbf795..00000000 Binary files a/preview-images/optimized/pre-komodo-encrypt-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains-677880419.jpg b/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains-677880419.jpg new file mode 100644 index 00000000..b54be609 Binary files /dev/null and b/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains-677880419.jpg differ diff --git a/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg b/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg deleted file mode 100644 index 12a8f99d..00000000 Binary files a/preview-images/optimized/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-note-exchanges-2871239590.jpg b/preview-images/optimized/pre-komodo-note-exchanges-2871239590.jpg new file mode 100644 index 00000000..82558601 Binary files /dev/null and b/preview-images/optimized/pre-komodo-note-exchanges-2871239590.jpg differ diff --git a/preview-images/optimized/pre-komodo-note-exchanges.jpg b/preview-images/optimized/pre-komodo-note-exchanges.jpg deleted file mode 100644 index f936820f..00000000 Binary files a/preview-images/optimized/pre-komodo-note-exchanges.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-npm-module-komodo-rewards-1534180110.jpg b/preview-images/optimized/pre-komodo-npm-module-komodo-rewards-1534180110.jpg new file mode 100644 index 00000000..1a414ee7 Binary files /dev/null and b/preview-images/optimized/pre-komodo-npm-module-komodo-rewards-1534180110.jpg differ diff --git a/preview-images/optimized/pre-komodo-npm-module-komodo-rewards.jpg b/preview-images/optimized/pre-komodo-npm-module-komodo-rewards.jpg deleted file mode 100644 index e098684c..00000000 Binary files a/preview-images/optimized/pre-komodo-npm-module-komodo-rewards.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-python-rpc-komodod-1137462542.jpg b/preview-images/optimized/pre-komodo-python-rpc-komodod-1137462542.jpg new file mode 100644 index 00000000..c8a25d31 Binary files /dev/null and b/preview-images/optimized/pre-komodo-python-rpc-komodod-1137462542.jpg differ diff --git a/preview-images/optimized/pre-komodo-python-rpc-komodod.jpg b/preview-images/optimized/pre-komodo-python-rpc-komodod.jpg deleted file mode 100644 index e50d9315..00000000 Binary files a/preview-images/optimized/pre-komodo-python-rpc-komodod.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-security-setup-full-node-3232439378.jpg b/preview-images/optimized/pre-komodo-security-setup-full-node-3232439378.jpg new file mode 100644 index 00000000..ef7eb3a1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-security-setup-full-node-3232439378.jpg differ diff --git a/preview-images/optimized/pre-komodo-security-setup-full-node.jpg b/preview-images/optimized/pre-komodo-security-setup-full-node.jpg deleted file mode 100644 index e622f0fe..00000000 Binary files a/preview-images/optimized/pre-komodo-security-setup-full-node.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-setup-electrumx-server-127454611.jpg b/preview-images/optimized/pre-komodo-setup-electrumx-server-127454611.jpg new file mode 100644 index 00000000..b9fdb2ee Binary files /dev/null and b/preview-images/optimized/pre-komodo-setup-electrumx-server-127454611.jpg differ diff --git a/preview-images/optimized/pre-komodo-setup-electrumx-server.jpg b/preview-images/optimized/pre-komodo-setup-electrumx-server.jpg deleted file mode 100644 index 4eb96ea1..00000000 Binary files a/preview-images/optimized/pre-komodo-setup-electrumx-server.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo-2342258011.jpg b/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo-2342258011.jpg new file mode 100644 index 00000000..cc46c728 Binary files /dev/null and b/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo-2342258011.jpg differ diff --git a/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo.jpg b/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo.jpg deleted file mode 100644 index bd25dc47..00000000 Binary files a/preview-images/optimized/pre-komodo-use-bitcore-lib-komodo.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-using-key-value-829909678.jpg b/preview-images/optimized/pre-komodo-using-key-value-829909678.jpg new file mode 100644 index 00000000..6a4ad364 Binary files /dev/null and b/preview-images/optimized/pre-komodo-using-key-value-829909678.jpg differ diff --git a/preview-images/optimized/pre-komodo-using-key-value.jpg b/preview-images/optimized/pre-komodo-using-key-value.jpg deleted file mode 100644 index f6289a1e..00000000 Binary files a/preview-images/optimized/pre-komodo-using-key-value.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-2515815206.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-2515815206.jpg new file mode 100644 index 00000000..f1abd7e6 Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-2515815206.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet-4165051644.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet-4165051644.jpg new file mode 100644 index 00000000..3dee8b11 Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet-4165051644.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg deleted file mode 100644 index bc2beab2..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop-3620488383.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop-3620488383.jpg new file mode 100644 index 00000000..4f5a8f47 Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop-3620488383.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg deleted file mode 100644 index 64b57848..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile-1540958594.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile-1540958594.jpg new file mode 100644 index 00000000..417d890d Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile-1540958594.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg deleted file mode 100644 index 54c30e7f..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web-2070933118.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web-2070933118.jpg new file mode 100644 index 00000000..d8adc47d Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web-2070933118.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg deleted file mode 100644 index 47d8c197..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet-1007769522.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet-1007769522.jpg new file mode 100644 index 00000000..64252ea8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet-1007769522.jpg differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg deleted file mode 100644 index e6d0e12d..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections.jpg b/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections.jpg deleted file mode 100644 index 5786d233..00000000 Binary files a/preview-images/optimized/pre-komodo-vote-in-komodo-polls-and-elections.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-1076441739.jpg b/preview-images/optimized/pre-komodo-wallet-1076441739.jpg new file mode 100644 index 00000000..342c7a49 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-1076441739.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-3787384663.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-3787384663.jpg new file mode 100644 index 00000000..19e2832d Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-3787384663.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files-277317776.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files-277317776.jpg new file mode 100644 index 00000000..fbbe7ad9 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files-277317776.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files.jpg deleted file mode 100644 index 02ebf94b..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-access-log-files.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins-1001654319.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins-1001654319.jpg new file mode 100644 index 00000000..50b74a16 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins-1001654319.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins.jpg deleted file mode 100644 index 35e37d4f..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-activate-coins.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens-2436754234.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens-2436754234.jpg new file mode 100644 index 00000000..a10aa6e1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens-2436754234.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens.jpg deleted file mode 100644 index 322f27ef..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-add-custom-tokens.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet-364117367.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet-364117367.jpg new file mode 100644 index 00000000..ad8453f2 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet-364117367.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet.jpg deleted file mode 100644 index 04f7781f..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-create-new-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase-919924172.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase-919924172.jpg new file mode 100644 index 00000000..4d947ee1 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase-919924172.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg deleted file mode 100644 index e15d07de..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default-824190692.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default-824190692.jpg new file mode 100644 index 00000000..f71ba302 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default-824190692.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg deleted file mode 100644 index fef255fb..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance-2093959094.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance-2093959094.jpg new file mode 100644 index 00000000..9ffe2824 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance-2093959094.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg deleted file mode 100644 index 59325512..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading-1741248994.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading-1741248994.jpg new file mode 100644 index 00000000..f0019909 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading-1741248994.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading.jpg deleted file mode 100644 index 437b398e..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-simple-view-trading.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address-2568075258.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address-2568075258.jpg new file mode 100644 index 00000000..0d599de8 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address-2568075258.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg deleted file mode 100644 index 4b265bed..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address-3122708903.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address-3122708903.jpg new file mode 100644 index 00000000..2fabdbc9 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address-3122708903.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address.jpg b/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address.jpg deleted file mode 100644 index a0d93845..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop-view-your-wallet-address.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-desktop.jpg b/preview-images/optimized/pre-komodo-wallet-desktop.jpg deleted file mode 100644 index 1acad374..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-desktop.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-2058550606.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-2058550606.jpg new file mode 100644 index 00000000..7dd0cb5b Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-2058550606.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins-1592367186.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins-1592367186.jpg new file mode 100644 index 00000000..f7990c57 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins-1592367186.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins.jpg deleted file mode 100644 index a5ae44b6..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-add-and-activate-coins.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet-1479470862.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet-1479470862.jpg new file mode 100644 index 00000000..037f6b9d Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet-1479470862.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet.jpg deleted file mode 100644 index 21d5db59..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-create-a-new-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase-128008029.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase-128008029.jpg new file mode 100644 index 00000000..f30f8068 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase-128008029.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase.jpg deleted file mode 100644 index a5f17b4b..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-delete-seed-phrase.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps-3546377675.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps-3546377675.jpg new file mode 100644 index 00000000..5373e94c Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps-3546377675.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg deleted file mode 100644 index 57ae78b2..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase-2321558318.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase-2321558318.jpg new file mode 100644 index 00000000..ebceceb4 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase-2321558318.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase.jpg deleted file mode 100644 index 927fd084..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-recover-seed-phrase.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet-1931074511.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet-1931074511.jpg new file mode 100644 index 00000000..51032f74 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet-1931074511.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet.jpg deleted file mode 100644 index ece22c31..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-restore-a-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history-3662606680.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history-3662606680.jpg new file mode 100644 index 00000000..5c0f0498 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history-3662606680.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg deleted file mode 100644 index 8a057961..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading-741277830.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading-741277830.jpg new file mode 100644 index 00000000..a210e591 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading-741277830.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg deleted file mode 100644 index 82481b05..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds-874669242.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds-874669242.jpg new file mode 100644 index 00000000..b4373c08 Binary files /dev/null and b/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds-874669242.jpg differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg b/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg deleted file mode 100644 index ee0b7664..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet-mobile.jpg b/preview-images/optimized/pre-komodo-wallet-mobile.jpg deleted file mode 100644 index e5f0a472..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet-mobile.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo-wallet.jpg b/preview-images/optimized/pre-komodo-wallet.jpg deleted file mode 100644 index 54eb5e65..00000000 Binary files a/preview-images/optimized/pre-komodo-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-komodo.jpg b/preview-images/optimized/pre-komodo.jpg deleted file mode 100644 index 0dc61a20..00000000 Binary files a/preview-images/optimized/pre-komodo.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-notary-3669955253.jpg b/preview-images/optimized/pre-notary-3669955253.jpg new file mode 100644 index 00000000..b4d5bb76 Binary files /dev/null and b/preview-images/optimized/pre-notary-3669955253.jpg differ diff --git a/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase-1863208961.jpg b/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase-1863208961.jpg new file mode 100644 index 00000000..858b774f Binary files /dev/null and b/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase-1863208961.jpg differ diff --git a/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg b/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg deleted file mode 100644 index 468c0444..00000000 Binary files a/preview-images/optimized/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-notary-split-utxo-for-notarization-1518700297.jpg b/preview-images/optimized/pre-notary-split-utxo-for-notarization-1518700297.jpg new file mode 100644 index 00000000..446f970f Binary files /dev/null and b/preview-images/optimized/pre-notary-split-utxo-for-notarization-1518700297.jpg differ diff --git a/preview-images/optimized/pre-notary-split-utxo-for-notarization.jpg b/preview-images/optimized/pre-notary-split-utxo-for-notarization.jpg deleted file mode 100644 index a9d133d0..00000000 Binary files a/preview-images/optimized/pre-notary-split-utxo-for-notarization.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-notary-update-komodo-manually-1668170991.jpg b/preview-images/optimized/pre-notary-update-komodo-manually-1668170991.jpg new file mode 100644 index 00000000..a30903d1 Binary files /dev/null and b/preview-images/optimized/pre-notary-update-komodo-manually-1668170991.jpg differ diff --git a/preview-images/optimized/pre-notary-update-komodo-manually.jpg b/preview-images/optimized/pre-notary-update-komodo-manually.jpg deleted file mode 100644 index 05c8b590..00000000 Binary files a/preview-images/optimized/pre-notary-update-komodo-manually.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node-3278090656.jpg b/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node-3278090656.jpg new file mode 100644 index 00000000..cf55df44 Binary files /dev/null and b/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node-3278090656.jpg differ diff --git a/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node.jpg b/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node.jpg deleted file mode 100644 index ff87512e..00000000 Binary files a/preview-images/optimized/pre-notary-useful-commands-for-komodo-notary-node.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-notary.jpg b/preview-images/optimized/pre-notary.jpg deleted file mode 100644 index a17df66a..00000000 Binary files a/preview-images/optimized/pre-notary.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-1705673986.jpg b/preview-images/optimized/pre-qa-1705673986.jpg new file mode 100644 index 00000000..5df4e4f5 Binary files /dev/null and b/preview-images/optimized/pre-qa-1705673986.jpg differ diff --git a/preview-images/optimized/pre-qa-adb-logcat-542246100.jpg b/preview-images/optimized/pre-qa-adb-logcat-542246100.jpg new file mode 100644 index 00000000..070c75ca Binary files /dev/null and b/preview-images/optimized/pre-qa-adb-logcat-542246100.jpg differ diff --git a/preview-images/optimized/pre-qa-adb-logcat.jpg b/preview-images/optimized/pre-qa-adb-logcat.jpg deleted file mode 100644 index a79105e9..00000000 Binary files a/preview-images/optimized/pre-qa-adb-logcat.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-blockscout-deployment-guide-2016560058.jpg b/preview-images/optimized/pre-qa-blockscout-deployment-guide-2016560058.jpg new file mode 100644 index 00000000..a05ac5ca Binary files /dev/null and b/preview-images/optimized/pre-qa-blockscout-deployment-guide-2016560058.jpg differ diff --git a/preview-images/optimized/pre-qa-blockscout-deployment-guide.jpg b/preview-images/optimized/pre-qa-blockscout-deployment-guide.jpg deleted file mode 100644 index 64c4c588..00000000 Binary files a/preview-images/optimized/pre-qa-blockscout-deployment-guide.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-debug-komodo-2989066092.jpg b/preview-images/optimized/pre-qa-debug-komodo-2989066092.jpg new file mode 100644 index 00000000..ad3c3262 Binary files /dev/null and b/preview-images/optimized/pre-qa-debug-komodo-2989066092.jpg differ diff --git a/preview-images/optimized/pre-qa-debug-komodo.jpg b/preview-images/optimized/pre-qa-debug-komodo.jpg deleted file mode 100644 index 87f65dc7..00000000 Binary files a/preview-images/optimized/pre-qa-debug-komodo.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log-2667790138.jpg b/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log-2667790138.jpg new file mode 100644 index 00000000..9774658c Binary files /dev/null and b/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log-2667790138.jpg differ diff --git a/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log.jpg b/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log.jpg deleted file mode 100644 index cb945411..00000000 Binary files a/preview-images/optimized/pre-qa-extract-swap-data-komodo-wallet-log.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-komodefi-api-quickstart-3922256711.jpg b/preview-images/optimized/pre-qa-komodefi-api-quickstart-3922256711.jpg new file mode 100644 index 00000000..38d211b2 Binary files /dev/null and b/preview-images/optimized/pre-qa-komodefi-api-quickstart-3922256711.jpg differ diff --git a/preview-images/optimized/pre-qa-komodefi-api-quickstart.jpg b/preview-images/optimized/pre-qa-komodefi-api-quickstart.jpg deleted file mode 100644 index 742fa9e7..00000000 Binary files a/preview-images/optimized/pre-qa-komodefi-api-quickstart.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-komodo-desktop-wallet-build-4274745949.jpg b/preview-images/optimized/pre-qa-komodo-desktop-wallet-build-4274745949.jpg new file mode 100644 index 00000000..7cc91bef Binary files /dev/null and b/preview-images/optimized/pre-qa-komodo-desktop-wallet-build-4274745949.jpg differ diff --git a/preview-images/optimized/pre-qa-komodo-desktop-wallet-build.jpg b/preview-images/optimized/pre-qa-komodo-desktop-wallet-build.jpg deleted file mode 100644 index 408f15cf..00000000 Binary files a/preview-images/optimized/pre-qa-komodo-desktop-wallet-build.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop-605218886.jpg b/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop-605218886.jpg new file mode 100644 index 00000000..fa9996b9 Binary files /dev/null and b/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop-605218886.jpg differ diff --git a/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg b/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg deleted file mode 100644 index 45fc845e..00000000 Binary files a/preview-images/optimized/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch-115672862.jpg b/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch-115672862.jpg new file mode 100644 index 00000000..a7bda7da Binary files /dev/null and b/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch-115672862.jpg differ diff --git a/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch.jpg b/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch.jpg deleted file mode 100644 index f6d962b5..00000000 Binary files a/preview-images/optimized/pre-qa-test-komodo-source-jl777-branch.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-qa.jpg b/preview-images/optimized/pre-qa.jpg deleted file mode 100644 index 4f4b134a..00000000 Binary files a/preview-images/optimized/pre-qa.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-resources-3873437733.jpg b/preview-images/optimized/pre-resources-3873437733.jpg new file mode 100644 index 00000000..b92f9e06 Binary files /dev/null and b/preview-images/optimized/pre-resources-3873437733.jpg differ diff --git a/preview-images/optimized/pre-resources-third-party-2355849436.jpg b/preview-images/optimized/pre-resources-third-party-2355849436.jpg new file mode 100644 index 00000000..1700263b Binary files /dev/null and b/preview-images/optimized/pre-resources-third-party-2355849436.jpg differ diff --git a/preview-images/optimized/pre-resources-third-party.jpg b/preview-images/optimized/pre-resources-third-party.jpg deleted file mode 100644 index 331e3bbf..00000000 Binary files a/preview-images/optimized/pre-resources-third-party.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-resources.jpg b/preview-images/optimized/pre-resources.jpg deleted file mode 100644 index 42fa734f..00000000 Binary files a/preview-images/optimized/pre-resources.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-1443304337.jpg b/preview-images/optimized/pre-smart-chains-1443304337.jpg new file mode 100644 index 00000000..8f33482a Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-1443304337.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-1167091449.jpg b/preview-images/optimized/pre-smart-chains-api-1167091449.jpg new file mode 100644 index 00000000..927e077d Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-1167091449.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-address-946143462.jpg b/preview-images/optimized/pre-smart-chains-api-address-946143462.jpg new file mode 100644 index 00000000..35d418dc Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-address-946143462.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-address.jpg b/preview-images/optimized/pre-smart-chains-api-address.jpg deleted file mode 100644 index acb69ec7..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-address.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-blockchain-3967065026.jpg b/preview-images/optimized/pre-smart-chains-api-blockchain-3967065026.jpg new file mode 100644 index 00000000..25d2bc2a Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-blockchain-3967065026.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-blockchain.jpg b/preview-images/optimized/pre-smart-chains-api-blockchain.jpg deleted file mode 100644 index 1b07aad4..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-blockchain.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-cclib-88328145.jpg b/preview-images/optimized/pre-smart-chains-api-cclib-88328145.jpg new file mode 100644 index 00000000..9fd0c1c5 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-cclib-88328145.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-cclib.jpg b/preview-images/optimized/pre-smart-chains-api-cclib.jpg deleted file mode 100644 index 937bf560..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-cclib.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-control-177911633.jpg b/preview-images/optimized/pre-smart-chains-api-control-177911633.jpg new file mode 100644 index 00000000..113dc2f2 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-control-177911633.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-control.jpg b/preview-images/optimized/pre-smart-chains-api-control.jpg deleted file mode 100644 index c306fec6..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-control.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-crosschain-1595064989.jpg b/preview-images/optimized/pre-smart-chains-api-crosschain-1595064989.jpg new file mode 100644 index 00000000..ef810542 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-crosschain-1595064989.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-crosschain.jpg b/preview-images/optimized/pre-smart-chains-api-crosschain.jpg deleted file mode 100644 index c51b3ca9..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-crosschain.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-disclosure-138774134.jpg b/preview-images/optimized/pre-smart-chains-api-disclosure-138774134.jpg new file mode 100644 index 00000000..5062e949 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-disclosure-138774134.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-disclosure.jpg b/preview-images/optimized/pre-smart-chains-api-disclosure.jpg deleted file mode 100644 index 171ea7bf..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-disclosure.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-generate-919716.jpg b/preview-images/optimized/pre-smart-chains-api-generate-919716.jpg new file mode 100644 index 00000000..e97fe43b Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-generate-919716.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-generate.jpg b/preview-images/optimized/pre-smart-chains-api-generate.jpg deleted file mode 100644 index 6505416a..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-generate.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-jumblr-3166836139.jpg b/preview-images/optimized/pre-smart-chains-api-jumblr-3166836139.jpg new file mode 100644 index 00000000..e73417a4 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-jumblr-3166836139.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-jumblr.jpg b/preview-images/optimized/pre-smart-chains-api-jumblr.jpg deleted file mode 100644 index 50fbfdd5..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-jumblr.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-mining-3672281986.jpg b/preview-images/optimized/pre-smart-chains-api-mining-3672281986.jpg new file mode 100644 index 00000000..f6829d44 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-mining-3672281986.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-mining.jpg b/preview-images/optimized/pre-smart-chains-api-mining.jpg deleted file mode 100644 index b5a1a9e3..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-mining.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-network-554745749.jpg b/preview-images/optimized/pre-smart-chains-api-network-554745749.jpg new file mode 100644 index 00000000..d2f59925 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-network-554745749.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-network.jpg b/preview-images/optimized/pre-smart-chains-api-network.jpg deleted file mode 100644 index f4e018e8..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-network.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-nspv-1279425790.jpg b/preview-images/optimized/pre-smart-chains-api-nspv-1279425790.jpg new file mode 100644 index 00000000..9263878f Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-nspv-1279425790.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-nspv.jpg b/preview-images/optimized/pre-smart-chains-api-nspv.jpg deleted file mode 100644 index 53700e99..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-nspv.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-rawtransactions-1606388255.jpg b/preview-images/optimized/pre-smart-chains-api-rawtransactions-1606388255.jpg new file mode 100644 index 00000000..900e8b66 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-rawtransactions-1606388255.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-rawtransactions.jpg b/preview-images/optimized/pre-smart-chains-api-rawtransactions.jpg deleted file mode 100644 index fe650ebc..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-rawtransactions.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-util-2415356681.jpg b/preview-images/optimized/pre-smart-chains-api-util-2415356681.jpg new file mode 100644 index 00000000..f31f64c6 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-util-2415356681.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-util.jpg b/preview-images/optimized/pre-smart-chains-api-util.jpg deleted file mode 100644 index bb958c2a..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-util.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api-wallet-2726190972.jpg b/preview-images/optimized/pre-smart-chains-api-wallet-2726190972.jpg new file mode 100644 index 00000000..c94c6408 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-api-wallet-2726190972.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-api-wallet.jpg b/preview-images/optimized/pre-smart-chains-api-wallet.jpg deleted file mode 100644 index f98e51f7..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api-wallet.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-api.jpg b/preview-images/optimized/pre-smart-chains-api.jpg deleted file mode 100644 index 9a2b2383..00000000 Binary files a/preview-images/optimized/pre-smart-chains-api.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-changelog-3437132146.jpg b/preview-images/optimized/pre-smart-chains-changelog-3437132146.jpg new file mode 100644 index 00000000..679bcbae Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-changelog-3437132146.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-changelog.jpg b/preview-images/optimized/pre-smart-chains-changelog.jpg deleted file mode 100644 index 5c27164a..00000000 Binary files a/preview-images/optimized/pre-smart-chains-changelog.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-3661469408.jpg b/preview-images/optimized/pre-smart-chains-setup-3661469408.jpg new file mode 100644 index 00000000..200caa14 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-3661469408.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters-1814473463.jpg b/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters-1814473463.jpg new file mode 100644 index 00000000..046a0577 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters-1814473463.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters.jpg b/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters.jpg deleted file mode 100644 index 103603e6..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-common-runtime-parameters.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-dexp2p-2829455039.jpg b/preview-images/optimized/pre-smart-chains-setup-dexp2p-2829455039.jpg new file mode 100644 index 00000000..b261c946 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-dexp2p-2829455039.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-dexp2p.jpg b/preview-images/optimized/pre-smart-chains-setup-dexp2p.jpg deleted file mode 100644 index d7775ad9..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-dexp2p.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters-3223677757.jpg b/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters-3223677757.jpg new file mode 100644 index 00000000..30e9184f Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters-3223677757.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters.jpg b/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters.jpg deleted file mode 100644 index 77ae1240..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-ecosystem-launch-parameters.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-installing-from-source-4246117987.jpg b/preview-images/optimized/pre-smart-chains-setup-installing-from-source-4246117987.jpg new file mode 100644 index 00000000..cf05f694 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-installing-from-source-4246117987.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-installing-from-source.jpg b/preview-images/optimized/pre-smart-chains-setup-installing-from-source.jpg deleted file mode 100644 index c042fb3f..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-installing-from-source.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains-2605590208.jpg b/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains-2605590208.jpg new file mode 100644 index 00000000..f83a4df6 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains-2605590208.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains.jpg b/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains.jpg deleted file mode 100644 index 38ab95eb..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-interacting-with-smart-chains.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-nspv-1411790762.jpg b/preview-images/optimized/pre-smart-chains-setup-nspv-1411790762.jpg new file mode 100644 index 00000000..64668445 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-nspv-1411790762.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-nspv.jpg b/preview-images/optimized/pre-smart-chains-setup-nspv.jpg deleted file mode 100644 index 091eb6a6..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-nspv.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance-2741549100.jpg b/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance-2741549100.jpg new file mode 100644 index 00000000..5b133dfb Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance-2741549100.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance.jpg b/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance.jpg deleted file mode 100644 index 433eba68..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-smart-chain-maintenance.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup-updating-from-source-732543822.jpg b/preview-images/optimized/pre-smart-chains-setup-updating-from-source-732543822.jpg new file mode 100644 index 00000000..51f3ef40 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-setup-updating-from-source-732543822.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-setup-updating-from-source.jpg b/preview-images/optimized/pre-smart-chains-setup-updating-from-source.jpg deleted file mode 100644 index 12e5b41d..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup-updating-from-source.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-setup.jpg b/preview-images/optimized/pre-smart-chains-setup.jpg deleted file mode 100644 index dccb7130..00000000 Binary files a/preview-images/optimized/pre-smart-chains-setup.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-4027455858.jpg b/preview-images/optimized/pre-smart-chains-tutorials-4027455858.jpg new file mode 100644 index 00000000..5f34902a Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-4027455858.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps-919538534.jpg b/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps-919538534.jpg new file mode 100644 index 00000000..a46dcc6c Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps-919538534.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg b/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg deleted file mode 100644 index c462a972..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain-1225709462.jpg b/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain-1225709462.jpg new file mode 100644 index 00000000..c7d09c4f Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain-1225709462.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg b/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg deleted file mode 100644 index 369b0748..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node-3559995386.jpg b/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node-3559995386.jpg new file mode 100644 index 00000000..861f1044 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node-3559995386.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg b/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg deleted file mode 100644 index f9e87987..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains-1457672239.jpg b/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains-1457672239.jpg new file mode 100644 index 00000000..97fdb306 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains-1457672239.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains.jpg b/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains.jpg deleted file mode 100644 index 6c286658..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-example-smart-chains.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey-1203472933.jpg b/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey-1203472933.jpg new file mode 100644 index 00000000..1cd29d2b Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey-1203472933.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey.jpg b/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey.jpg deleted file mode 100644 index 50328d94..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-get-new-pubkey.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough-1217068727.jpg b/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough-1217068727.jpg new file mode 100644 index 00000000..e4ec2691 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough-1217068727.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg b/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg deleted file mode 100644 index 61af45f1..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p-4252024580.jpg b/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p-4252024580.jpg new file mode 100644 index 00000000..4ca625dd Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p-4252024580.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg b/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg deleted file mode 100644 index 8346af2a..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode-1683643021.jpg b/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode-1683643021.jpg new file mode 100644 index 00000000..d9a3775f Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode-1683643021.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg b/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg deleted file mode 100644 index 04bd9818..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics-1218327888.jpg b/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics-1218327888.jpg new file mode 100644 index 00000000..edf2dcec Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics-1218327888.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics.jpg b/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics.jpg deleted file mode 100644 index df75f752..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-smart-chain-api-basics.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p-1985251643.jpg b/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p-1985251643.jpg new file mode 100644 index 00000000..5a8c1f53 Binary files /dev/null and b/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p-1985251643.jpg differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p.jpg b/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p.jpg deleted file mode 100644 index b18dc072..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials-streaming-dexp2p.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains-tutorials.jpg b/preview-images/optimized/pre-smart-chains-tutorials.jpg deleted file mode 100644 index 772cc180..00000000 Binary files a/preview-images/optimized/pre-smart-chains-tutorials.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-smart-chains.jpg b/preview-images/optimized/pre-smart-chains.jpg deleted file mode 100644 index 164309d0..00000000 Binary files a/preview-images/optimized/pre-smart-chains.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-1757185347.jpg b/preview-images/optimized/pre-start-here-1757185347.jpg new file mode 100644 index 00000000..e07fd0d8 Binary files /dev/null and b/preview-images/optimized/pre-start-here-1757185347.jpg differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-267909821.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-267909821.jpg new file mode 100644 index 00000000..8084769c Binary files /dev/null and b/preview-images/optimized/pre-start-here-about-komodo-platform-267909821.jpg differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-orientation-4287725904.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-orientation-4287725904.jpg new file mode 100644 index 00000000..af7acaee Binary files /dev/null and b/preview-images/optimized/pre-start-here-about-komodo-platform-orientation-4287725904.jpg differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-orientation.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-orientation.jpg deleted file mode 100644 index 870f0cee..00000000 Binary files a/preview-images/optimized/pre-start-here-about-komodo-platform-orientation.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions-446474931.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions-446474931.jpg new file mode 100644 index 00000000..e24823cd Binary files /dev/null and b/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions-446474931.jpg differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions.jpg deleted file mode 100644 index 51eb0289..00000000 Binary files a/preview-images/optimized/pre-start-here-about-komodo-platform-product-introductions.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations-2182937512.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations-2182937512.jpg new file mode 100644 index 00000000..fda99fc5 Binary files /dev/null and b/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations-2182937512.jpg differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations.jpg deleted file mode 100644 index 8dcd6ed4..00000000 Binary files a/preview-images/optimized/pre-start-here-about-komodo-platform-simple-installations.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-about-komodo-platform.jpg b/preview-images/optimized/pre-start-here-about-komodo-platform.jpg deleted file mode 100644 index fb0f3d7f..00000000 Binary files a/preview-images/optimized/pre-start-here-about-komodo-platform.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-3176086791.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-3176086791.jpg new file mode 100644 index 00000000..f53e87d0 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-3176086791.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-antara-3552774782.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-antara-3552774782.jpg new file mode 100644 index 00000000..c9ab8f51 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-antara-3552774782.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-antara.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-antara.jpg deleted file mode 100644 index 6f6646c6..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-antara.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work-3093384068.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work-3093384068.jpg new file mode 100644 index 00000000..d928ccd3 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work-3093384068.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg deleted file mode 100644 index 0f743f08..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering-3676377544.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering-3676377544.jpg new file mode 100644 index 00000000..349b6e99 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering-3676377544.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering.jpg deleted file mode 100644 index ba4a2c83..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-initial-dex-offering.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework-4034665969.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework-4034665969.jpg new file mode 100644 index 00000000..863681d2 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework-4034665969.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg deleted file mode 100644 index 8e5121c9..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk-3768735936.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk-3768735936.jpg new file mode 100644 index 00000000..73cb5a8b Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk-3768735936.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk.jpg deleted file mode 100644 index 9e6e9b74..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-komodo-sdk.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous-3521377063.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous-3521377063.jpg new file mode 100644 index 00000000..cab53a14 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous-3521377063.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous.jpg deleted file mode 100644 index 5691e2f4..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-miscellaneous.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-references-4127050597.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-references-4127050597.jpg new file mode 100644 index 00000000..b7289432 Binary files /dev/null and b/preview-images/optimized/pre-start-here-core-technology-discussions-references-4127050597.jpg differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions-references.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions-references.jpg deleted file mode 100644 index ed0aab30..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions-references.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-core-technology-discussions.jpg b/preview-images/optimized/pre-start-here-core-technology-discussions.jpg deleted file mode 100644 index fe1b04f1..00000000 Binary files a/preview-images/optimized/pre-start-here-core-technology-discussions.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-learning-launchpad-4010370426.jpg b/preview-images/optimized/pre-start-here-learning-launchpad-4010370426.jpg new file mode 100644 index 00000000..30cc93ec Binary files /dev/null and b/preview-images/optimized/pre-start-here-learning-launchpad-4010370426.jpg differ diff --git a/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts-2322486909.jpg b/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts-2322486909.jpg new file mode 100644 index 00000000..f3af029d Binary files /dev/null and b/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts-2322486909.jpg differ diff --git a/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg b/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg deleted file mode 100644 index 19c9aeb8..00000000 Binary files a/preview-images/optimized/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here-learning-launchpad.jpg b/preview-images/optimized/pre-start-here-learning-launchpad.jpg deleted file mode 100644 index 27bd3a08..00000000 Binary files a/preview-images/optimized/pre-start-here-learning-launchpad.jpg and /dev/null differ diff --git a/preview-images/optimized/pre-start-here.jpg b/preview-images/optimized/pre-start-here.jpg deleted file mode 100644 index efbfa323..00000000 Binary files a/preview-images/optimized/pre-start-here.jpg and /dev/null differ diff --git a/preview-images/original/pre-.jpg b/preview-images/original/pre-.jpg index 0bce19cb..f1067758 100644 Binary files a/preview-images/original/pre-.jpg and b/preview-images/original/pre-.jpg differ diff --git a/preview-images/original/pre-antara-api-assets.jpg b/preview-images/original/pre-antara-api-assets.jpg index 5a4ce4a5..ceb5d107 100644 Binary files a/preview-images/original/pre-antara-api-assets.jpg and b/preview-images/original/pre-antara-api-assets.jpg differ diff --git a/preview-images/original/pre-antara-api-channels.jpg b/preview-images/original/pre-antara-api-channels.jpg index 26471173..b5196d87 100644 Binary files a/preview-images/original/pre-antara-api-channels.jpg and b/preview-images/original/pre-antara-api-channels.jpg differ diff --git a/preview-images/original/pre-antara-api-custom.jpg b/preview-images/original/pre-antara-api-custom.jpg index 0fce576b..4b352bb6 100644 Binary files a/preview-images/original/pre-antara-api-custom.jpg and b/preview-images/original/pre-antara-api-custom.jpg differ diff --git a/preview-images/original/pre-antara-api-dice.jpg b/preview-images/original/pre-antara-api-dice.jpg index 5a3dcee1..910f3d10 100644 Binary files a/preview-images/original/pre-antara-api-dice.jpg and b/preview-images/original/pre-antara-api-dice.jpg differ diff --git a/preview-images/original/pre-antara-api-dilithium.jpg b/preview-images/original/pre-antara-api-dilithium.jpg index ad6b3e02..ec1ea6c8 100644 Binary files a/preview-images/original/pre-antara-api-dilithium.jpg and b/preview-images/original/pre-antara-api-dilithium.jpg differ diff --git a/preview-images/original/pre-antara-api-faucet.jpg b/preview-images/original/pre-antara-api-faucet.jpg index 3b39a8c6..20575edb 100644 Binary files a/preview-images/original/pre-antara-api-faucet.jpg and b/preview-images/original/pre-antara-api-faucet.jpg differ diff --git a/preview-images/original/pre-antara-api-gaming.jpg b/preview-images/original/pre-antara-api-gaming.jpg index fc8044a3..c2e0d01e 100644 Binary files a/preview-images/original/pre-antara-api-gaming.jpg and b/preview-images/original/pre-antara-api-gaming.jpg differ diff --git a/preview-images/original/pre-antara-api-gateways.jpg b/preview-images/original/pre-antara-api-gateways.jpg index d744bee2..a42cac8d 100644 Binary files a/preview-images/original/pre-antara-api-gateways.jpg and b/preview-images/original/pre-antara-api-gateways.jpg differ diff --git a/preview-images/original/pre-antara-api-heir.jpg b/preview-images/original/pre-antara-api-heir.jpg index 0d5c0743..434ea386 100644 Binary files a/preview-images/original/pre-antara-api-heir.jpg and b/preview-images/original/pre-antara-api-heir.jpg differ diff --git a/preview-images/original/pre-antara-api-musig.jpg b/preview-images/original/pre-antara-api-musig.jpg index 5b978e0b..308abe59 100644 Binary files a/preview-images/original/pre-antara-api-musig.jpg and b/preview-images/original/pre-antara-api-musig.jpg differ diff --git a/preview-images/original/pre-antara-api-oracles.jpg b/preview-images/original/pre-antara-api-oracles.jpg index 73651aa0..c9d7768a 100644 Binary files a/preview-images/original/pre-antara-api-oracles.jpg and b/preview-images/original/pre-antara-api-oracles.jpg differ diff --git a/preview-images/original/pre-antara-api-payments.jpg b/preview-images/original/pre-antara-api-payments.jpg index ace907a2..85933391 100644 Binary files a/preview-images/original/pre-antara-api-payments.jpg and b/preview-images/original/pre-antara-api-payments.jpg differ diff --git a/preview-images/original/pre-antara-api-pegs.jpg b/preview-images/original/pre-antara-api-pegs.jpg index 006db0ba..1c2f059e 100644 Binary files a/preview-images/original/pre-antara-api-pegs.jpg and b/preview-images/original/pre-antara-api-pegs.jpg differ diff --git a/preview-images/original/pre-antara-api-prices.jpg b/preview-images/original/pre-antara-api-prices.jpg index 66b05b68..8f14a720 100644 Binary files a/preview-images/original/pre-antara-api-prices.jpg and b/preview-images/original/pre-antara-api-prices.jpg differ diff --git a/preview-images/original/pre-antara-api-rewards.jpg b/preview-images/original/pre-antara-api-rewards.jpg index 1831bf0c..3c4e8c18 100644 Binary files a/preview-images/original/pre-antara-api-rewards.jpg and b/preview-images/original/pre-antara-api-rewards.jpg differ diff --git a/preview-images/original/pre-antara-api-rogue.jpg b/preview-images/original/pre-antara-api-rogue.jpg index d4bdd1eb..43ed2492 100644 Binary files a/preview-images/original/pre-antara-api-rogue.jpg and b/preview-images/original/pre-antara-api-rogue.jpg differ diff --git a/preview-images/original/pre-antara-api-sudoku.jpg b/preview-images/original/pre-antara-api-sudoku.jpg index 08bfce64..6c9dd150 100644 Binary files a/preview-images/original/pre-antara-api-sudoku.jpg and b/preview-images/original/pre-antara-api-sudoku.jpg differ diff --git a/preview-images/original/pre-antara-api-tokens.jpg b/preview-images/original/pre-antara-api-tokens.jpg index 7b51b714..a949b178 100644 Binary files a/preview-images/original/pre-antara-api-tokens.jpg and b/preview-images/original/pre-antara-api-tokens.jpg differ diff --git a/preview-images/original/pre-antara-api.jpg b/preview-images/original/pre-antara-api.jpg index b308ce71..ff984b45 100644 Binary files a/preview-images/original/pre-antara-api.jpg and b/preview-images/original/pre-antara-api.jpg differ diff --git a/preview-images/original/pre-antara-setup-antara-customizations.jpg b/preview-images/original/pre-antara-setup-antara-customizations.jpg index 723d91db..f562c4ea 100644 Binary files a/preview-images/original/pre-antara-setup-antara-customizations.jpg and b/preview-images/original/pre-antara-setup-antara-customizations.jpg differ diff --git a/preview-images/original/pre-antara-setup.jpg b/preview-images/original/pre-antara-setup.jpg index 6f5dc882..54035b36 100644 Binary files a/preview-images/original/pre-antara-setup.jpg and b/preview-images/original/pre-antara-setup.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-activate-antara-smartchain.jpg b/preview-images/original/pre-antara-tutorials-activate-antara-smartchain.jpg index b42c1ebe..f5c442c8 100644 Binary files a/preview-images/original/pre-antara-tutorials-activate-antara-smartchain.jpg and b/preview-images/original/pre-antara-tutorials-activate-antara-smartchain.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-0.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-0.jpg index a97b2926..fc7e163a 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-0.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-0.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-1.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-1.jpg index 6ac540ff..d79a3383 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-1.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-1.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-2.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-2.jpg index 681068e4..a903e40a 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-2.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-2.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-3.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-3.jpg index b9a158b5..9deefb5b 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-3.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-3.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-4.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-4.jpg index 4d438483..1950a8f5 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-4.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-4.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-5.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-5.jpg index 3ddac661..c17379d7 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-5.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-5.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-advanced-series-6.jpg b/preview-images/original/pre-antara-tutorials-advanced-series-6.jpg index 11c390e9..9d80d54e 100644 Binary files a/preview-images/original/pre-antara-tutorials-advanced-series-6.jpg and b/preview-images/original/pre-antara-tutorials-advanced-series-6.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-beginner-series-part-0.jpg b/preview-images/original/pre-antara-tutorials-beginner-series-part-0.jpg index 8faa56d8..de75ed27 100644 Binary files a/preview-images/original/pre-antara-tutorials-beginner-series-part-0.jpg and b/preview-images/original/pre-antara-tutorials-beginner-series-part-0.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-beginner-series-part-1.jpg b/preview-images/original/pre-antara-tutorials-beginner-series-part-1.jpg index 3aa7b54c..ae5b96b0 100644 Binary files a/preview-images/original/pre-antara-tutorials-beginner-series-part-1.jpg and b/preview-images/original/pre-antara-tutorials-beginner-series-part-1.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-beginner-series-part-2.jpg b/preview-images/original/pre-antara-tutorials-beginner-series-part-2.jpg index ffaf27f5..6435ff08 100644 Binary files a/preview-images/original/pre-antara-tutorials-beginner-series-part-2.jpg and b/preview-images/original/pre-antara-tutorials-beginner-series-part-2.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-beginner-series-part-3.jpg b/preview-images/original/pre-antara-tutorials-beginner-series-part-3.jpg index 8376bb79..af15c6dc 100644 Binary files a/preview-images/original/pre-antara-tutorials-beginner-series-part-3.jpg and b/preview-images/original/pre-antara-tutorials-beginner-series-part-3.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-beginner-series-part-4.jpg b/preview-images/original/pre-antara-tutorials-beginner-series-part-4.jpg index b029bacb..7f1c3591 100644 Binary files a/preview-images/original/pre-antara-tutorials-beginner-series-part-4.jpg and b/preview-images/original/pre-antara-tutorials-beginner-series-part-4.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-dilithium-module-tutorial.jpg b/preview-images/original/pre-antara-tutorials-dilithium-module-tutorial.jpg index 3a6e4f08..245a7c69 100644 Binary files a/preview-images/original/pre-antara-tutorials-dilithium-module-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-dilithium-module-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-gateways-module-tutorial.jpg b/preview-images/original/pre-antara-tutorials-gateways-module-tutorial.jpg index d795d0e4..0b87849b 100644 Binary files a/preview-images/original/pre-antara-tutorials-gateways-module-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-gateways-module-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-introduction-to-antara-tutorials.jpg b/preview-images/original/pre-antara-tutorials-introduction-to-antara-tutorials.jpg index 29b61e45..174e22cb 100644 Binary files a/preview-images/original/pre-antara-tutorials-introduction-to-antara-tutorials.jpg and b/preview-images/original/pre-antara-tutorials-introduction-to-antara-tutorials.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-musig-module-tutorial.jpg b/preview-images/original/pre-antara-tutorials-musig-module-tutorial.jpg index 5f44759b..46830cbc 100644 Binary files a/preview-images/original/pre-antara-tutorials-musig-module-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-musig-module-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg b/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg index 67764d96..e51b57a5 100644 Binary files a/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg and b/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg b/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg index b7be3f50..b9dbde16 100644 Binary files a/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg and b/preview-images/original/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-pegs-module-creator-tutorial.jpg b/preview-images/original/pre-antara-tutorials-pegs-module-creator-tutorial.jpg index 94142b33..4cf4994c 100644 Binary files a/preview-images/original/pre-antara-tutorials-pegs-module-creator-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-pegs-module-creator-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-pegs-module-user-tutorial.jpg b/preview-images/original/pre-antara-tutorials-pegs-module-user-tutorial.jpg index 8a4ef671..59d0331d 100644 Binary files a/preview-images/original/pre-antara-tutorials-pegs-module-user-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-pegs-module-user-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-rogue-module-tutorial.jpg b/preview-images/original/pre-antara-tutorials-rogue-module-tutorial.jpg index 6db00f30..4889e6e0 100644 Binary files a/preview-images/original/pre-antara-tutorials-rogue-module-tutorial.jpg and b/preview-images/original/pre-antara-tutorials-rogue-module-tutorial.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-test-use-write-integrate-antara.jpg b/preview-images/original/pre-antara-tutorials-test-use-write-integrate-antara.jpg index 7d96fef5..1af3e4b2 100644 Binary files a/preview-images/original/pre-antara-tutorials-test-use-write-integrate-antara.jpg and b/preview-images/original/pre-antara-tutorials-test-use-write-integrate-antara.jpg differ diff --git a/preview-images/original/pre-antara-tutorials-understanding-antara-addresses.jpg b/preview-images/original/pre-antara-tutorials-understanding-antara-addresses.jpg index 6ea8a0f5..af77bf76 100644 Binary files a/preview-images/original/pre-antara-tutorials-understanding-antara-addresses.jpg and b/preview-images/original/pre-antara-tutorials-understanding-antara-addresses.jpg differ diff --git a/preview-images/original/pre-antara-tutorials.jpg b/preview-images/original/pre-antara-tutorials.jpg index d7beec23..08bbe136 100644 Binary files a/preview-images/original/pre-antara-tutorials.jpg and b/preview-images/original/pre-antara-tutorials.jpg differ diff --git a/preview-images/original/pre-antara.jpg b/preview-images/original/pre-antara.jpg index c83f66b5..ecb48d30 100644 Binary files a/preview-images/original/pre-antara.jpg and b/preview-images/original/pre-antara.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter00.jpg b/preview-images/original/pre-historical-cc-jl-chapter00.jpg index 01c3a6e9..925c2b07 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter00.jpg and b/preview-images/original/pre-historical-cc-jl-chapter00.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter01.jpg b/preview-images/original/pre-historical-cc-jl-chapter01.jpg index 69cefbc7..ebc1f07a 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter01.jpg and b/preview-images/original/pre-historical-cc-jl-chapter01.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter02.jpg b/preview-images/original/pre-historical-cc-jl-chapter02.jpg index 7d4dbe7d..23d13496 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter02.jpg and b/preview-images/original/pre-historical-cc-jl-chapter02.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter03.jpg b/preview-images/original/pre-historical-cc-jl-chapter03.jpg index 217a2a3e..34ac21a8 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter03.jpg and b/preview-images/original/pre-historical-cc-jl-chapter03.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter04.jpg b/preview-images/original/pre-historical-cc-jl-chapter04.jpg index ddfb4324..f085ded8 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter04.jpg and b/preview-images/original/pre-historical-cc-jl-chapter04.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter05.jpg b/preview-images/original/pre-historical-cc-jl-chapter05.jpg index 415a19bd..12bee1a1 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter05.jpg and b/preview-images/original/pre-historical-cc-jl-chapter05.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter06.jpg b/preview-images/original/pre-historical-cc-jl-chapter06.jpg index 6991688b..badfd321 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter06.jpg and b/preview-images/original/pre-historical-cc-jl-chapter06.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter07.jpg b/preview-images/original/pre-historical-cc-jl-chapter07.jpg index d94d3262..1bac7552 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter07.jpg and b/preview-images/original/pre-historical-cc-jl-chapter07.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter08.jpg b/preview-images/original/pre-historical-cc-jl-chapter08.jpg index 979060f3..9dc403de 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter08.jpg and b/preview-images/original/pre-historical-cc-jl-chapter08.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter09.jpg b/preview-images/original/pre-historical-cc-jl-chapter09.jpg index 2f31004d..0531bf90 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter09.jpg and b/preview-images/original/pre-historical-cc-jl-chapter09.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter10.jpg b/preview-images/original/pre-historical-cc-jl-chapter10.jpg index fcc3cee7..0a4a34f9 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter10.jpg and b/preview-images/original/pre-historical-cc-jl-chapter10.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter11.jpg b/preview-images/original/pre-historical-cc-jl-chapter11.jpg index ad7891d2..869405d1 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter11.jpg and b/preview-images/original/pre-historical-cc-jl-chapter11.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter12.jpg b/preview-images/original/pre-historical-cc-jl-chapter12.jpg index ed88d7b3..70d6875e 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter12.jpg and b/preview-images/original/pre-historical-cc-jl-chapter12.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter13.jpg b/preview-images/original/pre-historical-cc-jl-chapter13.jpg index 820b9d9a..56054c26 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter13.jpg and b/preview-images/original/pre-historical-cc-jl-chapter13.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter14.jpg b/preview-images/original/pre-historical-cc-jl-chapter14.jpg index 5cc0f7d6..baa70fb7 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter14.jpg and b/preview-images/original/pre-historical-cc-jl-chapter14.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-chapter15.jpg b/preview-images/original/pre-historical-cc-jl-chapter15.jpg index c2c56ddd..cb41656a 100644 Binary files a/preview-images/original/pre-historical-cc-jl-chapter15.jpg and b/preview-images/original/pre-historical-cc-jl-chapter15.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl-faq.jpg b/preview-images/original/pre-historical-cc-jl-faq.jpg index 4d8ea16b..ba926313 100644 Binary files a/preview-images/original/pre-historical-cc-jl-faq.jpg and b/preview-images/original/pre-historical-cc-jl-faq.jpg differ diff --git a/preview-images/original/pre-historical-cc-jl.jpg b/preview-images/original/pre-historical-cc-jl.jpg index f1912674..f43c9222 100644 Binary files a/preview-images/original/pre-historical-cc-jl.jpg and b/preview-images/original/pre-historical-cc-jl.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter1.jpg b/preview-images/original/pre-historical-whitepaper-chapter1.jpg index 5a3d00c2..549d8127 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter1.jpg and b/preview-images/original/pre-historical-whitepaper-chapter1.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter2.jpg b/preview-images/original/pre-historical-whitepaper-chapter2.jpg index 22e7115e..dca2fe10 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter2.jpg and b/preview-images/original/pre-historical-whitepaper-chapter2.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter3.jpg b/preview-images/original/pre-historical-whitepaper-chapter3.jpg index a3d6e674..3a9b5f31 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter3.jpg and b/preview-images/original/pre-historical-whitepaper-chapter3.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter4.jpg b/preview-images/original/pre-historical-whitepaper-chapter4.jpg index cbe89abf..0c107133 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter4.jpg and b/preview-images/original/pre-historical-whitepaper-chapter4.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter5.jpg b/preview-images/original/pre-historical-whitepaper-chapter5.jpg index fae128fc..bcf6bff2 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter5.jpg and b/preview-images/original/pre-historical-whitepaper-chapter5.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter6.jpg b/preview-images/original/pre-historical-whitepaper-chapter6.jpg index a708d960..bf89c8b3 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter6.jpg and b/preview-images/original/pre-historical-whitepaper-chapter6.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter7.jpg b/preview-images/original/pre-historical-whitepaper-chapter7.jpg index 1074ec64..7faf206d 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter7.jpg and b/preview-images/original/pre-historical-whitepaper-chapter7.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-chapter8.jpg b/preview-images/original/pre-historical-whitepaper-chapter8.jpg index db7238e0..454a619e 100644 Binary files a/preview-images/original/pre-historical-whitepaper-chapter8.jpg and b/preview-images/original/pre-historical-whitepaper-chapter8.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper-references.jpg b/preview-images/original/pre-historical-whitepaper-references.jpg index e59e0aa3..321d404b 100644 Binary files a/preview-images/original/pre-historical-whitepaper-references.jpg and b/preview-images/original/pre-historical-whitepaper-references.jpg differ diff --git a/preview-images/original/pre-historical-whitepaper.jpg b/preview-images/original/pre-historical-whitepaper.jpg index bc0dc11a..f8401340 100644 Binary files a/preview-images/original/pre-historical-whitepaper.jpg and b/preview-images/original/pre-historical-whitepaper.jpg differ diff --git a/preview-images/original/pre-historical.jpg b/preview-images/original/pre-historical.jpg index a481718b..ee67da27 100644 Binary files a/preview-images/original/pre-historical.jpg and b/preview-images/original/pre-historical.jpg differ diff --git a/preview-images/original/pre-komodo-active-user-reward.jpg b/preview-images/original/pre-komodo-active-user-reward.jpg index 8d2e4fa9..98f0cfe7 100644 Binary files a/preview-images/original/pre-komodo-active-user-reward.jpg and b/preview-images/original/pre-komodo-active-user-reward.jpg differ diff --git a/preview-images/original/pre-komodo-block-1m-changes.jpg b/preview-images/original/pre-komodo-block-1m-changes.jpg index c921379c..92e8861d 100644 Binary files a/preview-images/original/pre-komodo-block-1m-changes.jpg and b/preview-images/original/pre-komodo-block-1m-changes.jpg differ diff --git a/preview-images/original/pre-komodo-coin-emission.jpg b/preview-images/original/pre-komodo-coin-emission.jpg index 0dc7d44a..f019304b 100644 Binary files a/preview-images/original/pre-komodo-coin-emission.jpg and b/preview-images/original/pre-komodo-coin-emission.jpg differ diff --git a/preview-images/original/pre-komodo-convert-pubkey-address.jpg b/preview-images/original/pre-komodo-convert-pubkey-address.jpg index 6f859358..b59f9607 100644 Binary files a/preview-images/original/pre-komodo-convert-pubkey-address.jpg and b/preview-images/original/pre-komodo-convert-pubkey-address.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-activation.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-activation.jpg index 28fb19f4..18ae7b03 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-activation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-activation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-lightning.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-lightning.jpg index 5832f0a7..64ec5446 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-lightning.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-lightning.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-nfts.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-nfts.jpg index 5a6998bc..7613596a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-nfts.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-nfts.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-orders.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-orders.jpg index bbd7eda4..02c75b4d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-orders.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-orders.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg index 02563384..efa0e806 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg index f4ee7f7d..ef1e964a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps.jpg index 1820e1fa..a316f85c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-swaps.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures-wallet.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures-wallet.jpg index b1f5d83d..4f4ec906 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures-wallet.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-common_structures.jpg b/preview-images/original/pre-komodo-defi-framework-api-common_structures.jpg index 903d863a..482e8c2e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-common_structures.jpg and b/preview-images/original/pre-komodo-defi-framework-api-common_structures.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-active_swaps.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-active_swaps.jpg index ced5b623..1ba0499e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-active_swaps.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-active_swaps.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg index 29e2c7ba..31f77e9e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg index 3ee4ec81..14e81192 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-batch_requests.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-batch_requests.jpg index d2490edc..f535572e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-batch_requests.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-batch_requests.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-best_orders.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-best_orders.jpg index 1f0b4398..8d7f02ca 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-best_orders.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-best_orders.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-buy.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-buy.jpg index 5059e5a6..5797920c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-buy.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-buy.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg index eb75853d..a6e555fa 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_order.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_order.jpg index 4de3d06b..8c191f56 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_order.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-cancel_order.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-coin_activation.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-coin_activation.jpg index 1db7161d..1a229f4a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-coin_activation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-coin_activation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg index 3b983488..807a7022 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg index cbfe6639..c4fd74a0 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-convertaddress.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-convertaddress.jpg index 7a3c60e6..2e5b6fb6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-convertaddress.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-convertaddress.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-disable_coin.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-disable_coin.jpg index d8063d20..743ed1ac 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-disable_coin.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-disable_coin.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg index 83f30d1a..e8cbc5d1 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg index dbc236d4..689d3c43 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg index fc87a3bf..f19c6431 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg index 328a60bf..7b03f72d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg index 8e88b761..74d56ff0 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg index 42b3d767..d1ec4fad 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg index e42f9cb6..9926f2f6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg index 208af4bd..6e5ea4d3 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-help.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-help.jpg index 01cf08b7..39b445aa 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-help.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-help.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-import_swaps.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-import_swaps.jpg index e6b55d97..7d8cfc28 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-import_swaps.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-import_swaps.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg index 41af9538..1fd74bfd 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg index 93045cc8..7f53c0d1 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg index c6920669..7d6a596f 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-metrics.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-metrics.jpg index fd0a1431..b9dc85c4 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-metrics.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-metrics.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg index 0440cb35..a468419a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_balance.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_balance.jpg index 0e92a1ec..45720732 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_balance.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_balance.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_orders.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_orders.jpg index ddbdd59c..7671170b 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_orders.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_orders.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg index e985648d..724739b0 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg index 5bc7a413..6622ee9c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg index 1865153f..e082cc02 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-order_status.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-order_status.jpg index b7327758..6c095e93 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-order_status.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-order_status.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook.jpg index 2d103eca..c2723d7d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg index cceb4ccf..42356712 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg index 86c1acfe..f7356d4f 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg index c044401c..774f0980 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg index f9339e6f..63bb35d3 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-sell.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-sell.jpg index ca28ddbc..03815452 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-sell.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-sell.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg index a39c4cb6..c07ba1d8 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg index c94f61ab..b7a810b8 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg index a92da256..6da75397 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-setprice.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-setprice.jpg index d66612ea..28d71499 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-setprice.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-setprice.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg index 253f3fdf..8afaff3a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-stop.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-stop.jpg index c0a9b147..b762d590 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-stop.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-stop.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg index 7ae25367..6282975f 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg index fe4614b6..558a6ec0 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg index 8c244872..a498734e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-validateaddress.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-validateaddress.jpg index 5459ec44..502270e6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-validateaddress.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-validateaddress.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-version.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-version.jpg index 5ad952ca..cc7f1570 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-version.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-version.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy-withdraw.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy-withdraw.jpg index 393bf559..4f160438 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy-withdraw.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy-withdraw.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-legacy.jpg b/preview-images/original/pre-komodo-defi-framework-api-legacy.jpg index a133c740..80abd2f1 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-legacy.jpg and b/preview-images/original/pre-komodo-defi-framework-api-legacy.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-add_delegation.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-add_delegation.jpg index 5c53c29e..d89eb600 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-add_delegation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-add_delegation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg index b7bafd68..9bb3fa32 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-best_orders.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-best_orders.jpg index 0e2c4a64..0e330515 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-best_orders.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-best_orders.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg index e1a437df..a4145940 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg index d9ba7b14..275a7ca5 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg index acc07ec9..bcb7464d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg index e7bdfeda..dd8d5d83 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg index 50c8dfb4..30804ad3 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg index 7183b65d..2c697313 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg index cf1b7bad..09dad74b 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg index ffcf8b39..f4feef26 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning.jpg index 03522437..798bb5c4 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-lightning.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg index ea2c3881..5fb0e708 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg index 1d5464be..21ce6ec5 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg index fcb2671a..9b1edcec 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg index 7d8ffe2c..c2a9d437 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg index bc113086..a22bd9d9 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg index 259e2674..6978f383 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg index 46c92f42..0a5db79e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg index cc61ecc5..e0bf7e31 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg index cd97132e..e5bd33c8 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg index af48a41e..800da3d4 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg index 0dc5e5e4..f2b1fed6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg index f3056d2d..5c346185 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg index 62f82156..94a3842e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg index 6dafdbe9..93abf365 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg index 7a2b6555..244118f6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg index 02f08b75..11b4788a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg index cdb0ed5c..0697671d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg index 33d3adc2..d5647b2a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg index 93154391..f00c8e4c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-dev.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-dev.jpg index 88674e92..d32983b1 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-dev.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-dev.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg index 78dcd30f..4e5b04af 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_erc20.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_erc20.jpg index 1b76fbeb..b53e282a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_erc20.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_erc20.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg index ae928e7f..0f6a5185 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_slp.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_slp.jpg index cf162bbc..21e843a8 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_slp.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_slp.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg index 90e17d2c..4464b7cb 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg index 8b9390ba..41452fad 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key.jpg index 9f4ffc0d..eddd8afb 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg index 70c9c361..8f9b1ee4 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg index bdebc61b..02c81862 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg index 40de0c88..df15519e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-message_signing.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-message_signing.jpg index 6f44feea..eaa8db5a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-message_signing.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-message_signing.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg index 80522643..6fd2079a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-my_tx_history.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-my_tx_history.jpg index 0833b460..00b56d9c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-my_tx_history.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-my_tx_history.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-orderbook.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-orderbook.jpg index f7622b14..d30f08cf 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-orderbook.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-orderbook.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg index 26746b8c..eeaf4d2f 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-remove_delegation.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-remove_delegation.jpg index 56da3a01..d770518b 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-remove_delegation.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-remove_delegation.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg index 2e4eb741..ec21d5c6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg index cdcd72dc..43830fab 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg index b9a3c4e5..3515debf 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg index 32dece16..c91a74ea 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg index 86dc992c..b3d8a3a6 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg index 0dd5449f..0b56d7fd 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg index 85879d8b..ca8e413a 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-trade_preimage.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-trade_preimage.jpg index 6ba5a4d3..194421e7 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-trade_preimage.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-trade_preimage.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg index 1b27a695..fb4af7b2 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20-withdraw.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20-withdraw.jpg index dc183790..660cc31c 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20-withdraw.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20-withdraw.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api-v20.jpg b/preview-images/original/pre-komodo-defi-framework-api-v20.jpg index 89dca8fb..4fe8c068 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api-v20.jpg and b/preview-images/original/pre-komodo-defi-framework-api-v20.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-api.jpg b/preview-images/original/pre-komodo-defi-framework-api.jpg index 6a6ea9e5..aa445f59 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-api.jpg and b/preview-images/original/pre-komodo-defi-framework-api.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-changelog.jpg b/preview-images/original/pre-komodo-defi-framework-changelog.jpg index 25fc8cd8..759192d5 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-changelog.jpg and b/preview-images/original/pre-komodo-defi-framework-changelog.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-setup-configure-mm2-json.jpg b/preview-images/original/pre-komodo-defi-framework-setup-configure-mm2-json.jpg index bb8d8616..5cc71c43 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-setup-configure-mm2-json.jpg and b/preview-images/original/pre-komodo-defi-framework-setup-configure-mm2-json.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-setup.jpg b/preview-images/original/pre-komodo-defi-framework-setup.jpg index 3c6ad30e..34f7235e 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-setup.jpg and b/preview-images/original/pre-komodo-defi-framework-setup.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-additional-information.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-additional-information.jpg index 1841791f..5d8c6741 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-additional-information.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-additional-information.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg index ea4e7366..b8f6573d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-api-metrics.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-api-metrics.jpg index c442c5ae..f8428467 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-api-metrics.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-api-metrics.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg index 9d6976ed..19f88833 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-coins-file-update.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-coins-file-update.jpg index 1240f302..129c714d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-coins-file-update.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-coins-file-update.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg index 3cb83c60..5e94c130 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg index 9ce9eb35..5940165d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg index 2ee393a5..96db409f 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg index aa790d96..bb5b806d 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg index a609b00a..1045f0b0 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg index 8b3db313..6a118426 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework-tutorials.jpg b/preview-images/original/pre-komodo-defi-framework-tutorials.jpg index 3d7d7abe..64e61941 100644 Binary files a/preview-images/original/pre-komodo-defi-framework-tutorials.jpg and b/preview-images/original/pre-komodo-defi-framework-tutorials.jpg differ diff --git a/preview-images/original/pre-komodo-defi-framework.jpg b/preview-images/original/pre-komodo-defi-framework.jpg index ee0432a1..75ff1718 100644 Binary files a/preview-images/original/pre-komodo-defi-framework.jpg and b/preview-images/original/pre-komodo-defi-framework.jpg differ diff --git a/preview-images/original/pre-komodo-dpow-conf.jpg b/preview-images/original/pre-komodo-dpow-conf.jpg index cfcff44e..2d438269 100644 Binary files a/preview-images/original/pre-komodo-dpow-conf.jpg and b/preview-images/original/pre-komodo-dpow-conf.jpg differ diff --git a/preview-images/original/pre-komodo-encrypt-wallet.jpg b/preview-images/original/pre-komodo-encrypt-wallet.jpg index 8ea097be..c3070ea3 100644 Binary files a/preview-images/original/pre-komodo-encrypt-wallet.jpg and b/preview-images/original/pre-komodo-encrypt-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg b/preview-images/original/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg index dd55058e..9104f3fd 100644 Binary files a/preview-images/original/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg and b/preview-images/original/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg differ diff --git a/preview-images/original/pre-komodo-note-exchanges.jpg b/preview-images/original/pre-komodo-note-exchanges.jpg index d7736f7f..4fbd174f 100644 Binary files a/preview-images/original/pre-komodo-note-exchanges.jpg and b/preview-images/original/pre-komodo-note-exchanges.jpg differ diff --git a/preview-images/original/pre-komodo-npm-module-komodo-rewards.jpg b/preview-images/original/pre-komodo-npm-module-komodo-rewards.jpg index b767669b..caad5bf0 100644 Binary files a/preview-images/original/pre-komodo-npm-module-komodo-rewards.jpg and b/preview-images/original/pre-komodo-npm-module-komodo-rewards.jpg differ diff --git a/preview-images/original/pre-komodo-python-rpc-komodod.jpg b/preview-images/original/pre-komodo-python-rpc-komodod.jpg index e09be531..fa9f05ca 100644 Binary files a/preview-images/original/pre-komodo-python-rpc-komodod.jpg and b/preview-images/original/pre-komodo-python-rpc-komodod.jpg differ diff --git a/preview-images/original/pre-komodo-security-setup-full-node.jpg b/preview-images/original/pre-komodo-security-setup-full-node.jpg index 995c216b..42ad60dc 100644 Binary files a/preview-images/original/pre-komodo-security-setup-full-node.jpg and b/preview-images/original/pre-komodo-security-setup-full-node.jpg differ diff --git a/preview-images/original/pre-komodo-setup-electrumx-server.jpg b/preview-images/original/pre-komodo-setup-electrumx-server.jpg index 6a3f5a9a..dce5ed16 100644 Binary files a/preview-images/original/pre-komodo-setup-electrumx-server.jpg and b/preview-images/original/pre-komodo-setup-electrumx-server.jpg differ diff --git a/preview-images/original/pre-komodo-use-bitcore-lib-komodo.jpg b/preview-images/original/pre-komodo-use-bitcore-lib-komodo.jpg index baebb0a5..b91cb315 100644 Binary files a/preview-images/original/pre-komodo-use-bitcore-lib-komodo.jpg and b/preview-images/original/pre-komodo-use-bitcore-lib-komodo.jpg differ diff --git a/preview-images/original/pre-komodo-using-key-value.jpg b/preview-images/original/pre-komodo-using-key-value.jpg index 58948584..990ea6a4 100644 Binary files a/preview-images/original/pre-komodo-using-key-value.jpg and b/preview-images/original/pre-komodo-using-key-value.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg index 845a27b7..b12a5de8 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg index 1b026508..c7b8aaac 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg index 66019a59..b893bb14 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg index 380600cd..a5c42dcf 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg index c7b2261b..f2dd5d2d 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections.jpg b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections.jpg index 12b077e5..4125d34b 100644 Binary files a/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections.jpg and b/preview-images/original/pre-komodo-vote-in-komodo-polls-and-elections.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-access-log-files.jpg b/preview-images/original/pre-komodo-wallet-desktop-access-log-files.jpg index 2445d278..19656037 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-access-log-files.jpg and b/preview-images/original/pre-komodo-wallet-desktop-access-log-files.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-activate-coins.jpg b/preview-images/original/pre-komodo-wallet-desktop-activate-coins.jpg index b12fd91d..a32cf35e 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-activate-coins.jpg and b/preview-images/original/pre-komodo-wallet-desktop-activate-coins.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-add-custom-tokens.jpg b/preview-images/original/pre-komodo-wallet-desktop-add-custom-tokens.jpg index e8d38b7c..16602819 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-add-custom-tokens.jpg and b/preview-images/original/pre-komodo-wallet-desktop-add-custom-tokens.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-create-new-wallet.jpg b/preview-images/original/pre-komodo-wallet-desktop-create-new-wallet.jpg index d41cd485..b79d5652 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-create-new-wallet.jpg and b/preview-images/original/pre-komodo-wallet-desktop-create-new-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg b/preview-images/original/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg index db68ab0e..20455901 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg and b/preview-images/original/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg b/preview-images/original/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg index aedca36a..a3cd0075 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg and b/preview-images/original/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg b/preview-images/original/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg index cd15da9a..aa8d7014 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg and b/preview-images/original/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-simple-view-trading.jpg b/preview-images/original/pre-komodo-wallet-desktop-simple-view-trading.jpg index f4f570e9..a5de9341 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-simple-view-trading.jpg and b/preview-images/original/pre-komodo-wallet-desktop-simple-view-trading.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg b/preview-images/original/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg index de226830..4cc800ec 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg and b/preview-images/original/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop-view-your-wallet-address.jpg b/preview-images/original/pre-komodo-wallet-desktop-view-your-wallet-address.jpg index 537c1735..9fb7b22d 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop-view-your-wallet-address.jpg and b/preview-images/original/pre-komodo-wallet-desktop-view-your-wallet-address.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-desktop.jpg b/preview-images/original/pre-komodo-wallet-desktop.jpg index c6610c77..6353fe42 100644 Binary files a/preview-images/original/pre-komodo-wallet-desktop.jpg and b/preview-images/original/pre-komodo-wallet-desktop.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-add-and-activate-coins.jpg b/preview-images/original/pre-komodo-wallet-mobile-add-and-activate-coins.jpg index c2a2e754..d4ef6ce9 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-add-and-activate-coins.jpg and b/preview-images/original/pre-komodo-wallet-mobile-add-and-activate-coins.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-create-a-new-wallet.jpg b/preview-images/original/pre-komodo-wallet-mobile-create-a-new-wallet.jpg index 9d3d5629..a8c0835b 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-create-a-new-wallet.jpg and b/preview-images/original/pre-komodo-wallet-mobile-create-a-new-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-delete-seed-phrase.jpg b/preview-images/original/pre-komodo-wallet-mobile-delete-seed-phrase.jpg index f35c1310..43997e1c 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-delete-seed-phrase.jpg and b/preview-images/original/pre-komodo-wallet-mobile-delete-seed-phrase.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg b/preview-images/original/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg index 3694e157..dd7d3322 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg and b/preview-images/original/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-recover-seed-phrase.jpg b/preview-images/original/pre-komodo-wallet-mobile-recover-seed-phrase.jpg index 983ce539..8fa649a0 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-recover-seed-phrase.jpg and b/preview-images/original/pre-komodo-wallet-mobile-recover-seed-phrase.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-restore-a-wallet.jpg b/preview-images/original/pre-komodo-wallet-mobile-restore-a-wallet.jpg index b84d67dd..494d9010 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-restore-a-wallet.jpg and b/preview-images/original/pre-komodo-wallet-mobile-restore-a-wallet.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg b/preview-images/original/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg index b7a56f4b..25f1ac54 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg and b/preview-images/original/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg b/preview-images/original/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg index 64b858dc..2c6c0796 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg and b/preview-images/original/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg b/preview-images/original/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg index 430d7ce9..07e72169 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg and b/preview-images/original/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg differ diff --git a/preview-images/original/pre-komodo-wallet-mobile.jpg b/preview-images/original/pre-komodo-wallet-mobile.jpg index 3e2b4bb7..d8e1ddba 100644 Binary files a/preview-images/original/pre-komodo-wallet-mobile.jpg and b/preview-images/original/pre-komodo-wallet-mobile.jpg differ diff --git a/preview-images/original/pre-komodo-wallet.jpg b/preview-images/original/pre-komodo-wallet.jpg index e7f21782..9fc62bb2 100644 Binary files a/preview-images/original/pre-komodo-wallet.jpg and b/preview-images/original/pre-komodo-wallet.jpg differ diff --git a/preview-images/original/pre-komodo.jpg b/preview-images/original/pre-komodo.jpg index e12109b6..463e86bf 100644 Binary files a/preview-images/original/pre-komodo.jpg and b/preview-images/original/pre-komodo.jpg differ diff --git a/preview-images/original/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg b/preview-images/original/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg index 7a389531..48143b19 100644 Binary files a/preview-images/original/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg and b/preview-images/original/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg differ diff --git a/preview-images/original/pre-notary-split-utxo-for-notarization.jpg b/preview-images/original/pre-notary-split-utxo-for-notarization.jpg index ce96498d..47627e45 100644 Binary files a/preview-images/original/pre-notary-split-utxo-for-notarization.jpg and b/preview-images/original/pre-notary-split-utxo-for-notarization.jpg differ diff --git a/preview-images/original/pre-notary-update-komodo-manually.jpg b/preview-images/original/pre-notary-update-komodo-manually.jpg index 2b9070bb..3da70485 100644 Binary files a/preview-images/original/pre-notary-update-komodo-manually.jpg and b/preview-images/original/pre-notary-update-komodo-manually.jpg differ diff --git a/preview-images/original/pre-notary-useful-commands-for-komodo-notary-node.jpg b/preview-images/original/pre-notary-useful-commands-for-komodo-notary-node.jpg index 86a6d4c0..7f0556fc 100644 Binary files a/preview-images/original/pre-notary-useful-commands-for-komodo-notary-node.jpg and b/preview-images/original/pre-notary-useful-commands-for-komodo-notary-node.jpg differ diff --git a/preview-images/original/pre-notary.jpg b/preview-images/original/pre-notary.jpg index 76af95bc..6ec50674 100644 Binary files a/preview-images/original/pre-notary.jpg and b/preview-images/original/pre-notary.jpg differ diff --git a/preview-images/original/pre-qa-adb-logcat.jpg b/preview-images/original/pre-qa-adb-logcat.jpg index 6a269e6d..57ef1fc6 100644 Binary files a/preview-images/original/pre-qa-adb-logcat.jpg and b/preview-images/original/pre-qa-adb-logcat.jpg differ diff --git a/preview-images/original/pre-qa-blockscout-deployment-guide.jpg b/preview-images/original/pre-qa-blockscout-deployment-guide.jpg index 67c46f70..64e2c5d0 100644 Binary files a/preview-images/original/pre-qa-blockscout-deployment-guide.jpg and b/preview-images/original/pre-qa-blockscout-deployment-guide.jpg differ diff --git a/preview-images/original/pre-qa-debug-komodo.jpg b/preview-images/original/pre-qa-debug-komodo.jpg index 69d8957b..b2b644c2 100644 Binary files a/preview-images/original/pre-qa-debug-komodo.jpg and b/preview-images/original/pre-qa-debug-komodo.jpg differ diff --git a/preview-images/original/pre-qa-extract-swap-data-komodo-wallet-log.jpg b/preview-images/original/pre-qa-extract-swap-data-komodo-wallet-log.jpg index b736ced5..a6e7bca9 100644 Binary files a/preview-images/original/pre-qa-extract-swap-data-komodo-wallet-log.jpg and b/preview-images/original/pre-qa-extract-swap-data-komodo-wallet-log.jpg differ diff --git a/preview-images/original/pre-qa-komodefi-api-quickstart.jpg b/preview-images/original/pre-qa-komodefi-api-quickstart.jpg index 5340c1e0..95479a18 100644 Binary files a/preview-images/original/pre-qa-komodefi-api-quickstart.jpg and b/preview-images/original/pre-qa-komodefi-api-quickstart.jpg differ diff --git a/preview-images/original/pre-qa-komodo-desktop-wallet-build.jpg b/preview-images/original/pre-qa-komodo-desktop-wallet-build.jpg index d415989e..cb615a83 100644 Binary files a/preview-images/original/pre-qa-komodo-desktop-wallet-build.jpg and b/preview-images/original/pre-qa-komodo-desktop-wallet-build.jpg differ diff --git a/preview-images/original/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg b/preview-images/original/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg index 00f08dc3..46d14fc8 100644 Binary files a/preview-images/original/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg and b/preview-images/original/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg differ diff --git a/preview-images/original/pre-qa-test-komodo-source-jl777-branch.jpg b/preview-images/original/pre-qa-test-komodo-source-jl777-branch.jpg index b676a140..1e48a444 100644 Binary files a/preview-images/original/pre-qa-test-komodo-source-jl777-branch.jpg and b/preview-images/original/pre-qa-test-komodo-source-jl777-branch.jpg differ diff --git a/preview-images/original/pre-qa.jpg b/preview-images/original/pre-qa.jpg index 6720c6ad..8bf678cc 100644 Binary files a/preview-images/original/pre-qa.jpg and b/preview-images/original/pre-qa.jpg differ diff --git a/preview-images/original/pre-resources-third-party.jpg b/preview-images/original/pre-resources-third-party.jpg index 077ff388..5193959f 100644 Binary files a/preview-images/original/pre-resources-third-party.jpg and b/preview-images/original/pre-resources-third-party.jpg differ diff --git a/preview-images/original/pre-resources.jpg b/preview-images/original/pre-resources.jpg index 7ab73bc1..130c8c54 100644 Binary files a/preview-images/original/pre-resources.jpg and b/preview-images/original/pre-resources.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-address.jpg b/preview-images/original/pre-smart-chains-api-address.jpg index 1fe515df..d7461868 100644 Binary files a/preview-images/original/pre-smart-chains-api-address.jpg and b/preview-images/original/pre-smart-chains-api-address.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-blockchain.jpg b/preview-images/original/pre-smart-chains-api-blockchain.jpg index 4fe4aa36..3f8f7594 100644 Binary files a/preview-images/original/pre-smart-chains-api-blockchain.jpg and b/preview-images/original/pre-smart-chains-api-blockchain.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-cclib.jpg b/preview-images/original/pre-smart-chains-api-cclib.jpg index e8ba2e1f..ca5a3d7b 100644 Binary files a/preview-images/original/pre-smart-chains-api-cclib.jpg and b/preview-images/original/pre-smart-chains-api-cclib.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-control.jpg b/preview-images/original/pre-smart-chains-api-control.jpg index f3e5a6a1..45e7a69e 100644 Binary files a/preview-images/original/pre-smart-chains-api-control.jpg and b/preview-images/original/pre-smart-chains-api-control.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-crosschain.jpg b/preview-images/original/pre-smart-chains-api-crosschain.jpg index 0829d3c4..006af403 100644 Binary files a/preview-images/original/pre-smart-chains-api-crosschain.jpg and b/preview-images/original/pre-smart-chains-api-crosschain.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-disclosure.jpg b/preview-images/original/pre-smart-chains-api-disclosure.jpg index afc59200..fb4f2249 100644 Binary files a/preview-images/original/pre-smart-chains-api-disclosure.jpg and b/preview-images/original/pre-smart-chains-api-disclosure.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-generate.jpg b/preview-images/original/pre-smart-chains-api-generate.jpg index 0c20c367..9332fdc0 100644 Binary files a/preview-images/original/pre-smart-chains-api-generate.jpg and b/preview-images/original/pre-smart-chains-api-generate.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-jumblr.jpg b/preview-images/original/pre-smart-chains-api-jumblr.jpg index 3f93a201..5ee60d5c 100644 Binary files a/preview-images/original/pre-smart-chains-api-jumblr.jpg and b/preview-images/original/pre-smart-chains-api-jumblr.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-mining.jpg b/preview-images/original/pre-smart-chains-api-mining.jpg index 66657c3f..2037d80b 100644 Binary files a/preview-images/original/pre-smart-chains-api-mining.jpg and b/preview-images/original/pre-smart-chains-api-mining.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-network.jpg b/preview-images/original/pre-smart-chains-api-network.jpg index 36a24e98..c76cd87f 100644 Binary files a/preview-images/original/pre-smart-chains-api-network.jpg and b/preview-images/original/pre-smart-chains-api-network.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-nspv.jpg b/preview-images/original/pre-smart-chains-api-nspv.jpg index 2b1110ff..761434fb 100644 Binary files a/preview-images/original/pre-smart-chains-api-nspv.jpg and b/preview-images/original/pre-smart-chains-api-nspv.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-rawtransactions.jpg b/preview-images/original/pre-smart-chains-api-rawtransactions.jpg index 3c16976a..994bc801 100644 Binary files a/preview-images/original/pre-smart-chains-api-rawtransactions.jpg and b/preview-images/original/pre-smart-chains-api-rawtransactions.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-util.jpg b/preview-images/original/pre-smart-chains-api-util.jpg index 904307a6..7c498c54 100644 Binary files a/preview-images/original/pre-smart-chains-api-util.jpg and b/preview-images/original/pre-smart-chains-api-util.jpg differ diff --git a/preview-images/original/pre-smart-chains-api-wallet.jpg b/preview-images/original/pre-smart-chains-api-wallet.jpg index 6cb36c14..0abaae47 100644 Binary files a/preview-images/original/pre-smart-chains-api-wallet.jpg and b/preview-images/original/pre-smart-chains-api-wallet.jpg differ diff --git a/preview-images/original/pre-smart-chains-api.jpg b/preview-images/original/pre-smart-chains-api.jpg index 68f52cd5..876c0464 100644 Binary files a/preview-images/original/pre-smart-chains-api.jpg and b/preview-images/original/pre-smart-chains-api.jpg differ diff --git a/preview-images/original/pre-smart-chains-changelog.jpg b/preview-images/original/pre-smart-chains-changelog.jpg index 54474514..3c2f7bcd 100644 Binary files a/preview-images/original/pre-smart-chains-changelog.jpg and b/preview-images/original/pre-smart-chains-changelog.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-common-runtime-parameters.jpg b/preview-images/original/pre-smart-chains-setup-common-runtime-parameters.jpg index 6e733c6f..17734ce0 100644 Binary files a/preview-images/original/pre-smart-chains-setup-common-runtime-parameters.jpg and b/preview-images/original/pre-smart-chains-setup-common-runtime-parameters.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-dexp2p.jpg b/preview-images/original/pre-smart-chains-setup-dexp2p.jpg index a6142ec8..f1f4b10f 100644 Binary files a/preview-images/original/pre-smart-chains-setup-dexp2p.jpg and b/preview-images/original/pre-smart-chains-setup-dexp2p.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-ecosystem-launch-parameters.jpg b/preview-images/original/pre-smart-chains-setup-ecosystem-launch-parameters.jpg index 23856438..95b7ef24 100644 Binary files a/preview-images/original/pre-smart-chains-setup-ecosystem-launch-parameters.jpg and b/preview-images/original/pre-smart-chains-setup-ecosystem-launch-parameters.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-installing-from-source.jpg b/preview-images/original/pre-smart-chains-setup-installing-from-source.jpg index a3ff98f1..d6c3b8a6 100644 Binary files a/preview-images/original/pre-smart-chains-setup-installing-from-source.jpg and b/preview-images/original/pre-smart-chains-setup-installing-from-source.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-interacting-with-smart-chains.jpg b/preview-images/original/pre-smart-chains-setup-interacting-with-smart-chains.jpg index 7c0405da..6e74f135 100644 Binary files a/preview-images/original/pre-smart-chains-setup-interacting-with-smart-chains.jpg and b/preview-images/original/pre-smart-chains-setup-interacting-with-smart-chains.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-nspv.jpg b/preview-images/original/pre-smart-chains-setup-nspv.jpg index 50a90c61..9a68ce1d 100644 Binary files a/preview-images/original/pre-smart-chains-setup-nspv.jpg and b/preview-images/original/pre-smart-chains-setup-nspv.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-smart-chain-maintenance.jpg b/preview-images/original/pre-smart-chains-setup-smart-chain-maintenance.jpg index 8137c50f..c104a4f2 100644 Binary files a/preview-images/original/pre-smart-chains-setup-smart-chain-maintenance.jpg and b/preview-images/original/pre-smart-chains-setup-smart-chain-maintenance.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup-updating-from-source.jpg b/preview-images/original/pre-smart-chains-setup-updating-from-source.jpg index d4f2c605..d95acd92 100644 Binary files a/preview-images/original/pre-smart-chains-setup-updating-from-source.jpg and b/preview-images/original/pre-smart-chains-setup-updating-from-source.jpg differ diff --git a/preview-images/original/pre-smart-chains-setup.jpg b/preview-images/original/pre-smart-chains-setup.jpg index ac7e5b8c..30a7d922 100644 Binary files a/preview-images/original/pre-smart-chains-setup.jpg and b/preview-images/original/pre-smart-chains-setup.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg b/preview-images/original/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg index b402e64e..2ffe7fa4 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg and b/preview-images/original/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg b/preview-images/original/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg index 59cf942d..fade3d93 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg and b/preview-images/original/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg b/preview-images/original/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg index bd68ea18..1ed6d34e 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg and b/preview-images/original/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-example-smart-chains.jpg b/preview-images/original/pre-smart-chains-tutorials-example-smart-chains.jpg index ead32c6c..fcb85367 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-example-smart-chains.jpg and b/preview-images/original/pre-smart-chains-tutorials-example-smart-chains.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-get-new-pubkey.jpg b/preview-images/original/pre-smart-chains-tutorials-get-new-pubkey.jpg index 0e62f976..a0d39720 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-get-new-pubkey.jpg and b/preview-images/original/pre-smart-chains-tutorials-get-new-pubkey.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg b/preview-images/original/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg index 88b41aae..0f9d814b 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg and b/preview-images/original/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg b/preview-images/original/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg index 28a2ff3c..a5ba560c 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg and b/preview-images/original/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg b/preview-images/original/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg index 1201f171..da5768b6 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg and b/preview-images/original/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-smart-chain-api-basics.jpg b/preview-images/original/pre-smart-chains-tutorials-smart-chain-api-basics.jpg index d25abf7d..ceaf0505 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-smart-chain-api-basics.jpg and b/preview-images/original/pre-smart-chains-tutorials-smart-chain-api-basics.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials-streaming-dexp2p.jpg b/preview-images/original/pre-smart-chains-tutorials-streaming-dexp2p.jpg index 81698af5..d4154af9 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials-streaming-dexp2p.jpg and b/preview-images/original/pre-smart-chains-tutorials-streaming-dexp2p.jpg differ diff --git a/preview-images/original/pre-smart-chains-tutorials.jpg b/preview-images/original/pre-smart-chains-tutorials.jpg index e025c33c..2bae1a91 100644 Binary files a/preview-images/original/pre-smart-chains-tutorials.jpg and b/preview-images/original/pre-smart-chains-tutorials.jpg differ diff --git a/preview-images/original/pre-smart-chains.jpg b/preview-images/original/pre-smart-chains.jpg index e6e178b1..24cd85c6 100644 Binary files a/preview-images/original/pre-smart-chains.jpg and b/preview-images/original/pre-smart-chains.jpg differ diff --git a/preview-images/original/pre-start-here-about-komodo-platform-orientation.jpg b/preview-images/original/pre-start-here-about-komodo-platform-orientation.jpg index a76f3965..084dfaf2 100644 Binary files a/preview-images/original/pre-start-here-about-komodo-platform-orientation.jpg and b/preview-images/original/pre-start-here-about-komodo-platform-orientation.jpg differ diff --git a/preview-images/original/pre-start-here-about-komodo-platform-product-introductions.jpg b/preview-images/original/pre-start-here-about-komodo-platform-product-introductions.jpg index 8247810f..297e1e2f 100644 Binary files a/preview-images/original/pre-start-here-about-komodo-platform-product-introductions.jpg and b/preview-images/original/pre-start-here-about-komodo-platform-product-introductions.jpg differ diff --git a/preview-images/original/pre-start-here-about-komodo-platform-simple-installations.jpg b/preview-images/original/pre-start-here-about-komodo-platform-simple-installations.jpg index a67951dd..86a3c63a 100644 Binary files a/preview-images/original/pre-start-here-about-komodo-platform-simple-installations.jpg and b/preview-images/original/pre-start-here-about-komodo-platform-simple-installations.jpg differ diff --git a/preview-images/original/pre-start-here-about-komodo-platform.jpg b/preview-images/original/pre-start-here-about-komodo-platform.jpg index 82ba70e4..a4f61851 100644 Binary files a/preview-images/original/pre-start-here-about-komodo-platform.jpg and b/preview-images/original/pre-start-here-about-komodo-platform.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-antara.jpg b/preview-images/original/pre-start-here-core-technology-discussions-antara.jpg index 058eb00d..e6090bc8 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-antara.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-antara.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg b/preview-images/original/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg index 6f072431..6bef825c 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-initial-dex-offering.jpg b/preview-images/original/pre-start-here-core-technology-discussions-initial-dex-offering.jpg index 55125efe..34e75955 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-initial-dex-offering.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-initial-dex-offering.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg b/preview-images/original/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg index e64ad8e1..31179116 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-komodo-sdk.jpg b/preview-images/original/pre-start-here-core-technology-discussions-komodo-sdk.jpg index b8ba8fd0..0cc64d98 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-komodo-sdk.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-komodo-sdk.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-miscellaneous.jpg b/preview-images/original/pre-start-here-core-technology-discussions-miscellaneous.jpg index 828c930e..b7095a7d 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-miscellaneous.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-miscellaneous.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions-references.jpg b/preview-images/original/pre-start-here-core-technology-discussions-references.jpg index 915e5e2f..96df978a 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions-references.jpg and b/preview-images/original/pre-start-here-core-technology-discussions-references.jpg differ diff --git a/preview-images/original/pre-start-here-core-technology-discussions.jpg b/preview-images/original/pre-start-here-core-technology-discussions.jpg index 6c260d1d..d8bcf484 100644 Binary files a/preview-images/original/pre-start-here-core-technology-discussions.jpg and b/preview-images/original/pre-start-here-core-technology-discussions.jpg differ diff --git a/preview-images/original/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg b/preview-images/original/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg index d26916c3..91337a63 100644 Binary files a/preview-images/original/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg and b/preview-images/original/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg differ diff --git a/preview-images/original/pre-start-here-learning-launchpad.jpg b/preview-images/original/pre-start-here-learning-launchpad.jpg index b0c99e96..29cde8b4 100644 Binary files a/preview-images/original/pre-start-here-learning-launchpad.jpg and b/preview-images/original/pre-start-here-learning-launchpad.jpg differ diff --git a/preview-images/original/pre-start-here.jpg b/preview-images/original/pre-start-here.jpg index 3054d2d3..4ceb90fe 100644 Binary files a/preview-images/original/pre-start-here.jpg and b/preview-images/original/pre-start-here.jpg differ diff --git a/preview-images/previewImgTimeStamps.json b/preview-images/previewImgTimeStamps.json index 7325d59f..e969bd2a 100644 --- a/preview-images/previewImgTimeStamps.json +++ b/preview-images/previewImgTimeStamps.json @@ -1,328 +1,1958 @@ { - "/antara/api/assets": "2024-03-04T11:51:07.000Z", - "/antara/api/channels": "2023-09-11T05:33:19.000Z", - "/antara/api/custom": "2023-09-01T12:11:07.000Z", - "/antara/api/dice": "2023-09-05T12:43:04.000Z", - "/antara/api/dilithium": "2024-03-04T13:25:23.000Z", - "/antara/api/faucet": "2023-09-05T12:43:04.000Z", - "/antara/api/gaming": "2024-03-08T07:30:33.000Z", - "/antara/api/gateways": "2024-02-16T13:57:43.000Z", - "/antara/api/heir": "2024-04-03T09:17:49.000Z", - "/antara/api": "2024-03-08T07:30:33.000Z", - "/antara/api/musig": "2023-10-03T07:36:45.000Z", - "/antara/api/oracles": "2024-02-16T13:57:43.000Z", - "/antara/api/payments": "2023-10-04T06:35:30.000Z", - "/antara/api/pegs": "2024-03-08T07:30:33.000Z", - "/antara/api/prices": "2024-03-08T07:30:33.000Z", - "/antara/api/rewards": "2024-03-08T07:30:33.000Z", - "/antara/api/rogue": "2024-03-08T07:30:33.000Z", - "/antara/api/sudoku": "2024-03-19T10:35:42.000Z", - "/antara/api/tokens": "2024-02-15T09:17:33.000Z", - "/antara": "2024-03-04T15:37:32.000Z", - "/antara/setup/antara-customizations": "2024-09-14T01:57:48.000Z", - "/antara/setup": "2024-03-08T07:30:33.000Z", - "/antara/tutorials/activate-antara-smartchain": "2024-02-15T09:17:33.000Z", - "/antara/tutorials/advanced-series-0": "2023-09-29T15:15:08.000Z", - "/antara/tutorials/advanced-series-1": "2024-02-15T07:35:14.000Z", - "/antara/tutorials/advanced-series-2": "2024-03-08T07:30:33.000Z", - "/antara/tutorials/advanced-series-3": "2023-09-27T17:48:31.000Z", - "/antara/tutorials/advanced-series-4": "2024-04-03T09:17:49.000Z", - "/antara/tutorials/advanced-series-5": "2023-09-29T15:15:08.000Z", - "/antara/tutorials/advanced-series-6": "2023-09-28T14:58:40.000Z", - "/antara/tutorials/beginner-series-part-0": "2024-04-03T09:17:49.000Z", - "/antara/tutorials/beginner-series-part-1": "2024-04-03T09:17:49.000Z", - "/antara/tutorials/beginner-series-part-2": "2023-09-27T17:48:31.000Z", - "/antara/tutorials/beginner-series-part-3": "2023-09-27T17:48:31.000Z", - "/antara/tutorials/beginner-series-part-4": "2024-04-03T09:17:49.000Z", - "/antara/tutorials/dilithium-module-tutorial": "2024-03-19T10:35:42.000Z", - "/antara/tutorials/gateways-module-tutorial": "2024-02-15T09:17:33.000Z", - "/antara/tutorials": "2024-03-08T07:30:33.000Z", - "/antara/tutorials/introduction-to-antara-tutorials": "2024-03-08T15:53:57.000Z", - "/antara/tutorials/musig-module-tutorial": "2023-09-27T17:48:31.000Z", - "/antara/tutorials/overview-of-antara-modules-part-i": "2023-09-29T09:18:12.000Z", - "/antara/tutorials/overview-of-antara-modules-part-ii": "2023-09-29T15:15:08.000Z", - "/antara/tutorials/pegs-module-creator-tutorial": "2023-09-27T17:48:31.000Z", - "/antara/tutorials/pegs-module-user-tutorial": "2024-03-08T07:30:33.000Z", - "/antara/tutorials/rogue-module-tutorial": "2024-03-08T07:30:33.000Z", - "/antara/tutorials/test-use-write-integrate-antara": "2024-04-01T14:50:59.000Z", - "/antara/tutorials/understanding-antara-addresses": "2023-09-27T17:48:31.000Z", - "/historical/cc-jl/chapter00": "2023-05-24T13:18:47.000Z", - "/historical/cc-jl/chapter01": "2023-09-29T14:54:33.000Z", - "/historical/cc-jl/chapter02": "2023-10-03T07:36:45.000Z", - "/historical/cc-jl/chapter03": "2023-05-24T13:18:47.000Z", - "/historical/cc-jl/chapter04": "2023-10-03T07:36:45.000Z", - "/historical/cc-jl/chapter05": "2023-05-31T18:19:46.000Z", - "/historical/cc-jl/chapter06": "2023-10-03T07:36:45.000Z", - "/historical/cc-jl/chapter07": "2023-10-03T07:36:45.000Z", - "/historical/cc-jl/chapter08": "2023-05-31T18:19:46.000Z", - "/historical/cc-jl/chapter09": "2023-09-01T12:11:07.000Z", - "/historical/cc-jl/chapter10": "2023-09-01T12:11:07.000Z", - "/historical/cc-jl/chapter11": "2023-05-24T13:18:47.000Z", - "/historical/cc-jl/chapter12": "2023-05-24T13:18:47.000Z", - "/historical/cc-jl/chapter13": "2023-06-01T17:59:27.000Z", - "/historical/cc-jl/chapter14": "2023-06-01T17:59:27.000Z", - "/historical/cc-jl/chapter15": "2023-06-01T17:59:27.000Z", - "/historical/cc-jl/faq": "2023-10-03T07:36:45.000Z", - "/historical/cc-jl": "2024-03-08T07:30:33.000Z", - "/historical": "2024-03-08T07:30:33.000Z", - "/historical/whitepaper/chapter1": "2023-09-01T12:11:07.000Z", - "/historical/whitepaper/chapter2": "2023-10-03T07:36:45.000Z", - "/historical/whitepaper/chapter3": "2024-02-15T09:17:33.000Z", - "/historical/whitepaper/chapter4": "2024-02-15T09:17:33.000Z", - "/historical/whitepaper/chapter5": "2024-02-15T09:17:33.000Z", - "/historical/whitepaper/chapter6": "2023-09-27T20:43:30.000Z", - "/historical/whitepaper/chapter7": "2023-09-27T20:43:30.000Z", - "/historical/whitepaper/chapter8": "2024-02-15T09:17:33.000Z", - "/historical/whitepaper": "2024-03-08T07:30:33.000Z", - "/historical/whitepaper/references": "2023-10-03T07:36:45.000Z", - "/": "2024-04-11T22:59:47.000Z", - "/komodo/block-1m-changes": "2023-12-17T18:46:24.000Z", - "/komodo/coin-emission": "2023-12-16T08:38:31.000Z", - "/komodo/convert-pubkey-address": "2023-12-16T08:38:31.000Z", - "/komodo/dpow-conf": "2024-02-15T09:17:33.000Z", - "/komodo/encrypt-wallet": "2023-12-16T08:38:31.000Z", - "/komodo": "2023-12-17T18:46:24.000Z", - "/komodo/multisig-transactions-on-komodo-or-smartchains": "2024-03-11T12:10:28.000Z", - "/komodo/note-exchanges": "2023-12-16T08:38:31.000Z", - "/komodo/npm-module-komodo-rewards": "2023-12-16T14:24:08.000Z", - "/komodo/python-rpc-komodod": "2023-12-17T18:46:24.000Z", - "/komodo/security-setup-full-node": "2023-12-17T18:46:24.000Z", - "/komodo/setup-electrumx-server": "2024-03-08T15:53:57.000Z", - "/komodo/use-bitcore-lib-komodo": "2023-12-17T18:46:24.000Z", - "/komodo/using-key-value": "2023-12-17T18:46:24.000Z", - "/komodo-defi-framework/api/common_structures/activation": "2024-03-08T13:34:00.000Z", - "/komodo-defi-framework/api/common_structures": "2024-09-09T02:07:57.000Z", - "/komodo-defi-framework/api/common_structures/lightning": "2024-03-08T09:57:54.000Z", - "/komodo-defi-framework/api/common_structures/nfts": "2024-03-11T12:10:28.000Z", - "/komodo-defi-framework/api/common_structures/orders": "2024-03-08T13:34:00.000Z", - "/komodo-defi-framework/api/common_structures/swaps": "2024-03-11T12:10:28.000Z", - "/komodo-defi-framework/api/common_structures/swaps/maker_events": "2024-03-08T10:08:50.000Z", - "/komodo-defi-framework/api/common_structures/swaps/taker_events": "2024-03-08T10:08:50.000Z", - "/komodo-defi-framework/api/common_structures/wallet": "2024-03-08T13:34:00.000Z", - "/komodo-defi-framework/api": "2024-08-01T13:23:13.000Z", - "/komodo-defi-framework/api/legacy/active_swaps": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/ban_pubkey": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/batch_requests": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/best_orders": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/buy": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/cancel_all_orders": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/cancel_order": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/coin_activation": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/legacy/coins_needed_for_kick_start": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/convert_utxo_address": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/convertaddress": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/disable_coin": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_enabled_coins": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_gossip_mesh": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_gossip_peer_topics": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_gossip_topic_peers": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_my_peer_id": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_peers_info": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_relay_mesh": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/get_trade_fee": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/help": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/legacy/import_swaps": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/legacy/kmd_rewards_info": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/list_banned_pubkeys": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/max_taker_vol": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/metrics": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/min_trading_vol": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/my_balance": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/my_orders": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/my_recent_swaps": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/my_swap_status": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/my_tx_history": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/order_status": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/orderbook": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/orderbook_depth": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/orders_history_by_filter": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/rational_number_note": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/legacy/recover_funds_of_swap": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/sell": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/send_raw_transaction": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/set_required_confirmations": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/set_requires_notarization": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/setprice": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/show_priv_key": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/stop": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/legacy/trade_preimage": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/unban_pubkeys": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/update_maker_order": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/validateaddress": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/version": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/legacy/withdraw": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/add_delegation": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/add_node_to_version_stat": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/best_orders": "2024-03-29T07:08:19.000Z", - "/komodo-defi-framework/api/v20/enable_bch_with_tokens": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20/enable_erc20": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/enable_eth_with_tokens": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20/enable_slp": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/enable_tendermint_token": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/enable_tendermint_with_assets": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/get_public_key": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/get_public_key_hash": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/get_raw_transaction": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/get_staking_infos": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/message_signing": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/my_tx_history": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/orderbook": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/recreate_swap_data": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/remove_delegation": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/remove_node_from_version_stat": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/sign_raw_transaction": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/start_simple_market_maker_bot": "2024-09-09T02:16:09.000Z", - "/komodo-defi-framework/api/v20/start_version_stat_collection": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/stop_simple_market_maker_bot": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/stop_version_stat_collection": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/telegram_alerts": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/v20/trade_preimage": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/update_version_stat_collection": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20/withdraw": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/get_current_mtp": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/get_locked_amount": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/hd_address_management": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/hd_wallets_overview": "2024-03-08T10:06:13.000Z", - "/komodo-defi-framework/api/v20-dev": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/lightning/activation": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/lightning/channels": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/lightning": "2024-04-03T09:17:49.000Z", - "/komodo-defi-framework/api/v20-dev/lightning/nodes": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/lightning/payments": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/max_maker_vol": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/task_account_balance": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/task_create_new_account": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/task_enable_qtum": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/task_enable_utxo": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/task_init_trezor": "2024-04-03T09:17:49.000Z", - "/komodo-defi-framework/api/v20-dev/task_withdraw": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/api/v20-dev/zhtlc_coins/activation": "2024-07-08T12:16:22.000Z", - "/komodo-defi-framework/api/v20-dev/zhtlc_coins": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/changelog": "2024-08-02T13:26:41.000Z", - "/komodo-defi-framework": "2024-04-11T16:31:02.000Z", - "/komodo-defi-framework/setup/configure-mm2-json": "2024-09-13T08:45:00.000Z", - "/komodo-defi-framework/setup": "2024-06-14T01:07:38.000Z", - "/komodo-defi-framework/tutorials/additional-information": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/tutorials/api-docker-telegram": "2024-04-03T09:17:49.000Z", - "/komodo-defi-framework/tutorials/api-metrics": "2024-04-03T09:17:49.000Z", - "/komodo-defi-framework/tutorials/api-walkthrough": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/tutorials/coins-file-update": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/tutorials/how-to-compile-mm2-from-source": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/tutorials": "2024-03-11T12:10:28.000Z", - "/komodo-defi-framework/tutorials/listing-a-new-coin": "2024-09-13T09:22:44.000Z", - "/komodo-defi-framework/tutorials/query-the-mm2-database": "2024-03-08T15:53:57.000Z", - "/komodo-defi-framework/tutorials/setup-komodefi-api-aws": "2024-03-12T16:57:58.000Z", - "/komodo-defi-framework/tutorials/using-komodefi-cli-in-console": "2024-08-15T14:40:28.000Z", - "/komodo-wallet": "2024-04-21T19:29:47.000Z", - "/komodo-wallet/mobile/add-and-activate-coins": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/create-a-new-wallet": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/delete-seed-phrase": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile": "2024-03-15T15:40:17.000Z", - "/komodo-wallet/mobile/perform-cross-chain-atomic-swaps": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/recover-seed-phrase": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/restore-a-wallet": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/view-ongoing-orders-and-swap-history": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading": "2024-04-03T09:17:49.000Z", - "/komodo-wallet/mobile/withdraw-or-send-funds": "2024-04-03T09:17:49.000Z", - "/notary/generate-privkeys-for-third-party-coins-from-passphrase": "2023-12-17T18:46:24.000Z", - "/notary": "2024-03-11T12:10:28.000Z", - "/notary/split-utxo-for-notarization": "2024-02-16T13:57:43.000Z", - "/notary/update-komodo-manually": "2023-12-17T18:46:24.000Z", - "/notary/useful-commands-for-komodo-notary-node": "2023-12-17T18:46:24.000Z", - "/qa/adb-logcat": "2024-04-03T09:17:49.000Z", - "/qa/blockscout-deployment-guide": "2023-12-19T13:02:52.000Z", - "/qa/debug-komodo": "2024-03-04T15:37:32.000Z", - "/qa/extract-swap-data-komodo-wallet-log": "2024-03-08T15:53:57.000Z", - "/qa": "2024-03-08T07:30:33.000Z", - "/qa/komodefi-api-quickstart": "2024-03-08T15:53:57.000Z", - "/qa/komodo-desktop-wallet-build": "2024-03-08T13:29:26.000Z", - "/qa/recover-komodo-mobile-wallet-swap-on-desktop": "2024-03-08T15:53:57.000Z", - "/qa/test-komodo-source-jl777-branch": "2024-02-15T09:17:33.000Z", - "/resources": "2023-12-18T17:07:32.000Z", - "/resources/third-party": "2024-02-15T07:35:14.000Z", - "/smart-chains/api/address": "2023-09-27T20:43:30.000Z", - "/smart-chains/api/blockchain": "2024-03-08T07:30:33.000Z", - "/smart-chains/api/cclib": "2023-09-27T20:43:30.000Z", - "/smart-chains/api/control": "2023-09-05T12:43:04.000Z", - "/smart-chains/api/crosschain": "2024-02-15T07:35:14.000Z", - "/smart-chains/api/disclosure": "2023-10-04T06:26:45.000Z", - "/smart-chains/api/generate": "2023-09-27T20:43:30.000Z", - "/smart-chains/api": "2024-03-08T07:30:33.000Z", - "/smart-chains/api/jumblr": "2023-09-27T20:43:30.000Z", - "/smart-chains/api/mining": "2023-09-27T20:43:30.000Z", - "/smart-chains/api/network": "2023-10-03T07:36:45.000Z", - "/smart-chains/api/nspv": "2024-03-11T12:10:28.000Z", - "/smart-chains/api/rawtransactions": "2023-10-05T08:59:16.000Z", - "/smart-chains/api/util": "2023-09-27T20:43:30.000Z", - "/smart-chains/api/wallet": "2024-03-08T13:34:00.000Z", - "/smart-chains/changelog": "2024-02-09T13:52:20.000Z", - "/smart-chains": "2023-12-15T11:00:16.000Z", - "/smart-chains/setup/common-runtime-parameters": "2023-10-03T07:36:45.000Z", - "/smart-chains/setup/dexp2p": "2024-03-11T12:10:28.000Z", - "/smart-chains/setup/ecosystem-launch-parameters": "2023-06-01T17:59:27.000Z", - "/smart-chains/setup": "2024-03-08T07:30:33.000Z", - "/smart-chains/setup/installing-from-source": "2024-03-11T12:23:42.000Z", - "/smart-chains/setup/interacting-with-smart-chains": "2023-09-27T20:43:30.000Z", - "/smart-chains/setup/nspv": "2024-03-12T16:57:58.000Z", - "/smart-chains/setup/smart-chain-maintenance": "2023-09-01T12:11:07.000Z", - "/smart-chains/setup/updating-from-source": "2023-06-01T17:59:27.000Z", - "/smart-chains/tutorials/basic-environment-setup-for-linux-vps": "2023-10-03T07:36:45.000Z", - "/smart-chains/tutorials/create-a-default-smart-chain": "2024-03-11T05:16:33.000Z", - "/smart-chains/tutorials/creating-a-smart-chain-on-a-single-node": "2024-03-08T07:30:33.000Z", - "/smart-chains/tutorials/example-smart-chains": "2024-03-11T12:10:28.000Z", - "/smart-chains/tutorials/get-new-pubkey": "2023-12-15T09:10:12.000Z", - "/smart-chains/tutorials": "2024-03-08T15:53:57.000Z", - "/smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough": "2024-03-08T07:30:33.000Z", - "/smart-chains/tutorials/publish-download-files-dexp2p": "2024-04-01T13:25:56.000Z", - "/smart-chains/tutorials/running-komodo-software-in-debug-mode": "2023-09-01T12:11:07.000Z", - "/smart-chains/tutorials/smart-chain-api-basics": "2024-03-08T07:30:33.000Z", - "/smart-chains/tutorials/streaming-dexp2p": "2024-04-03T09:17:49.000Z", - "/start-here/about-komodo-platform": "2024-04-11T17:48:23.000Z", - "/start-here/about-komodo-platform/orientation": "2024-03-08T15:53:57.000Z", - "/start-here/about-komodo-platform/product-introductions": "2024-04-11T22:59:47.000Z", - "/start-here/about-komodo-platform/simple-installations": "2024-03-09T08:32:18.000Z", - "/start-here/core-technology-discussions/antara": "2023-05-24T13:18:47.000Z", - "/start-here/core-technology-discussions/delayed-proof-of-work": "2024-03-08T15:53:57.000Z", - "/start-here/core-technology-discussions": "2024-02-15T07:35:14.000Z", - "/start-here/core-technology-discussions/initial-dex-offering": "2024-03-11T05:16:33.000Z", - "/start-here/core-technology-discussions/komodo-defi-framework": "2024-03-08T15:53:57.000Z", - "/start-here/core-technology-discussions/komodo-sdk": "2024-04-11T22:59:47.000Z", - "/start-here/core-technology-discussions/miscellaneous": "2024-03-08T15:53:57.000Z", - "/start-here/core-technology-discussions/references": "2023-10-03T07:36:45.000Z", - "/start-here": "2024-03-04T15:37:32.000Z", - "/start-here/learning-launchpad/common-terminology-and-concepts": "2024-03-11T05:16:33.000Z", - "/start-here/learning-launchpad": "2024-04-11T16:31:02.000Z", - "/komodo/active-user-reward": "2024-04-21T19:29:47.000Z", - "/komodo/vote-in-komodo-polls-and-elections/hardware-wallet": "2024-06-14T00:54:39.000Z", - "/komodo/vote-in-komodo-polls-and-elections": "2024-04-21T19:26:02.000Z", - "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop": "2024-04-21T14:12:42.000Z", - "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile": "2024-04-21T14:12:42.000Z", - "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web": "2024-04-21T19:26:02.000Z", - "/komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet": "2024-06-12T20:13:14.000Z", - "/komodo-wallet/desktop/access-log-files": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/activate-coins": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/add-custom-tokens": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/create-new-wallet": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/import-private-key-or-seed-phrase": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop": "2024-03-26T15:48:36.000Z", - "/komodo-wallet/desktop/reset-configuration-to-default": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/send-commands-to-mm2-instance": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/simple-view-trading": "2024-04-15T02:00:38.000Z", - "/komodo-wallet/desktop/use-seed-words-to-restore-the-address": "2024-04-17T21:24:08.000Z", - "/komodo-wallet/desktop/view-your-wallet-address": "2024-04-17T21:24:08.000Z", - "/komodo-defi-framework/api/v20/my_recent_swaps": "2024-09-13T08:31:57.000Z" + "/antara/api/assets": { + "origImgPath": "./preview-images-original/pre-antara-api-assets.jpg", + "dateModified": "2024-03-04T11:51:07.000Z", + "optImgPath": "public/preview-images/pre-antara-api-assets-1562272474.jpg", + "optImgHash": 1562272474 + }, + "/antara/api/channels": { + "origImgPath": "./preview-images-original/pre-antara-api-channels.jpg", + "dateModified": "2023-09-11T05:33:19.000Z", + "optImgPath": "public/preview-images/pre-antara-api-channels-2592570489.jpg", + "optImgHash": 2592570489 + }, + "/antara/api/custom": { + "origImgPath": "./preview-images-original/pre-antara-api-custom.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-antara-api-custom-391528626.jpg", + "optImgHash": 391528626 + }, + "/antara/api/dice": { + "origImgPath": "./preview-images-original/pre-antara-api-dice.jpg", + "dateModified": "2023-09-05T12:43:04.000Z", + "optImgPath": "public/preview-images/pre-antara-api-dice-63664629.jpg", + "optImgHash": 63664629 + }, + "/antara/api/dilithium": { + "origImgPath": "./preview-images-original/pre-antara-api-dilithium.jpg", + "dateModified": "2024-03-04T13:25:23.000Z", + "optImgPath": "public/preview-images/pre-antara-api-dilithium-1603477472.jpg", + "optImgHash": 1603477472 + }, + "/antara/api/faucet": { + "origImgPath": "./preview-images-original/pre-antara-api-faucet.jpg", + "dateModified": "2023-09-05T12:43:04.000Z", + "optImgPath": "public/preview-images/pre-antara-api-faucet-3997433047.jpg", + "optImgHash": 3997433047 + }, + "/antara/api/gaming": { + "origImgPath": "./preview-images-original/pre-antara-api-gaming.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-gaming-2747455807.jpg", + "optImgHash": 2747455807 + }, + "/antara/api/gateways": { + "origImgPath": "./preview-images-original/pre-antara-api-gateways.jpg", + "dateModified": "2024-02-16T13:57:43.000Z", + "optImgPath": "public/preview-images/pre-antara-api-gateways-2093947886.jpg", + "optImgHash": 2093947886 + }, + "/antara/api/heir": { + "origImgPath": "./preview-images-original/pre-antara-api-heir.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-antara-api-heir-949021129.jpg", + "optImgHash": 949021129 + }, + "/antara/api": { + "origImgPath": "./preview-images-original/pre-antara-api.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-1060888254.jpg", + "optImgHash": 1060888254 + }, + "/antara/api/musig": { + "origImgPath": "./preview-images-original/pre-antara-api-musig.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-antara-api-musig-1975593721.jpg", + "optImgHash": 1975593721 + }, + "/antara/api/oracles": { + "origImgPath": "./preview-images-original/pre-antara-api-oracles.jpg", + "dateModified": "2024-02-16T13:57:43.000Z", + "optImgPath": "public/preview-images/pre-antara-api-oracles-79999268.jpg", + "optImgHash": 79999268 + }, + "/antara/api/payments": { + "origImgPath": "./preview-images-original/pre-antara-api-payments.jpg", + "dateModified": "2023-10-04T06:35:30.000Z", + "optImgPath": "public/preview-images/pre-antara-api-payments-3866208613.jpg", + "optImgHash": 3866208613 + }, + "/antara/api/pegs": { + "origImgPath": "./preview-images-original/pre-antara-api-pegs.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-pegs-2871413435.jpg", + "optImgHash": 2871413435 + }, + "/antara/api/prices": { + "origImgPath": "./preview-images-original/pre-antara-api-prices.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-prices-1408614040.jpg", + "optImgHash": 1408614040 + }, + "/antara/api/rewards": { + "origImgPath": "./preview-images-original/pre-antara-api-rewards.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-rewards-2039313383.jpg", + "optImgHash": 2039313383 + }, + "/antara/api/rogue": { + "origImgPath": "./preview-images-original/pre-antara-api-rogue.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-rogue-236992690.jpg", + "optImgHash": 236992690 + }, + "/antara/api/sudoku": { + "origImgPath": "./preview-images-original/pre-antara-api-sudoku.jpg", + "dateModified": "2024-03-19T10:35:42.000Z", + "optImgPath": "public/preview-images/pre-antara-api-sudoku-2783011240.jpg", + "optImgHash": 2783011240 + }, + "/antara/api/tokens": { + "origImgPath": "./preview-images-original/pre-antara-api-tokens.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-antara-api-tokens-2271585185.jpg", + "optImgHash": 2271585185 + }, + "/antara": { + "origImgPath": "./preview-images-original/pre-antara.jpg", + "dateModified": "2024-03-04T15:37:32.000Z", + "optImgPath": "public/preview-images/pre-antara-264871822.jpg", + "optImgHash": 264871822 + }, + "/antara/setup/antara-customizations": { + "origImgPath": "./preview-images-original/pre-antara-setup-antara-customizations.jpg", + "dateModified": "2024-09-14T01:57:48.000Z", + "optImgPath": "public/preview-images/pre-antara-setup-antara-customizations-3175968924.jpg", + "optImgHash": 3175968924 + }, + "/antara/setup": { + "origImgPath": "./preview-images-original/pre-antara-setup.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-setup-3501875781.jpg", + "optImgHash": 3501875781 + }, + "/antara/tutorials/activate-antara-smartchain": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-activate-antara-smartchain.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-activate-antara-smartchain-434397746.jpg", + "optImgHash": 434397746 + }, + "/antara/tutorials/advanced-series-0": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-0.jpg", + "dateModified": "2023-09-29T15:15:08.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-0-908254629.jpg", + "optImgHash": 908254629 + }, + "/antara/tutorials/advanced-series-1": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-1.jpg", + "dateModified": "2024-02-15T07:35:14.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-1-1010318213.jpg", + "optImgHash": 1010318213 + }, + "/antara/tutorials/advanced-series-2": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-2.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-2-1697493419.jpg", + "optImgHash": 1697493419 + }, + "/antara/tutorials/advanced-series-3": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-3.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-3-1499095173.jpg", + "optImgHash": 1499095173 + }, + "/antara/tutorials/advanced-series-4": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-4.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-4-2819813281.jpg", + "optImgHash": 2819813281 + }, + "/antara/tutorials/advanced-series-5": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-5.jpg", + "dateModified": "2023-09-29T15:15:08.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-5-3178144250.jpg", + "optImgHash": 3178144250 + }, + "/antara/tutorials/advanced-series-6": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-advanced-series-6.jpg", + "dateModified": "2023-09-28T14:58:40.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-advanced-series-6-1544065592.jpg", + "optImgHash": 1544065592 + }, + "/antara/tutorials/beginner-series-part-0": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-beginner-series-part-0.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-beginner-series-part-0-962041359.jpg", + "optImgHash": 962041359 + }, + "/antara/tutorials/beginner-series-part-1": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-beginner-series-part-1.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-beginner-series-part-1-3744501762.jpg", + "optImgHash": 3744501762 + }, + "/antara/tutorials/beginner-series-part-2": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-beginner-series-part-2.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-beginner-series-part-2-453911767.jpg", + "optImgHash": 453911767 + }, + "/antara/tutorials/beginner-series-part-3": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-beginner-series-part-3.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-beginner-series-part-3-4173138285.jpg", + "optImgHash": 4173138285 + }, + "/antara/tutorials/beginner-series-part-4": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-beginner-series-part-4.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-beginner-series-part-4-1909735831.jpg", + "optImgHash": 1909735831 + }, + "/antara/tutorials/dilithium-module-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-dilithium-module-tutorial.jpg", + "dateModified": "2024-03-19T10:35:42.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-dilithium-module-tutorial-1804964230.jpg", + "optImgHash": 1804964230 + }, + "/antara/tutorials/gateways-module-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-gateways-module-tutorial.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-gateways-module-tutorial-2793687793.jpg", + "optImgHash": 2793687793 + }, + "/antara/tutorials": { + "origImgPath": "./preview-images-original/pre-antara-tutorials.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-557524942.jpg", + "optImgHash": 557524942 + }, + "/antara/tutorials/introduction-to-antara-tutorials": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-introduction-to-antara-tutorials.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-introduction-to-antara-tutorials-2849233207.jpg", + "optImgHash": 2849233207 + }, + "/antara/tutorials/musig-module-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-musig-module-tutorial.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-musig-module-tutorial-1610047040.jpg", + "optImgHash": 1610047040 + }, + "/antara/tutorials/overview-of-antara-modules-part-i": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-overview-of-antara-modules-part-i.jpg", + "dateModified": "2023-09-29T09:18:12.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-overview-of-antara-modules-part-i-1414119697.jpg", + "optImgHash": 1414119697 + }, + "/antara/tutorials/overview-of-antara-modules-part-ii": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-overview-of-antara-modules-part-ii.jpg", + "dateModified": "2023-09-29T15:15:08.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-overview-of-antara-modules-part-ii-2166385832.jpg", + "optImgHash": 2166385832 + }, + "/antara/tutorials/pegs-module-creator-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-pegs-module-creator-tutorial.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-pegs-module-creator-tutorial-2911259589.jpg", + "optImgHash": 2911259589 + }, + "/antara/tutorials/pegs-module-user-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-pegs-module-user-tutorial.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-pegs-module-user-tutorial-3522756855.jpg", + "optImgHash": 3522756855 + }, + "/antara/tutorials/rogue-module-tutorial": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-rogue-module-tutorial.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-rogue-module-tutorial-989732063.jpg", + "optImgHash": 989732063 + }, + "/antara/tutorials/test-use-write-integrate-antara": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-test-use-write-integrate-antara.jpg", + "dateModified": "2024-04-01T14:50:59.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-test-use-write-integrate-antara-3488537599.jpg", + "optImgHash": 3488537599 + }, + "/antara/tutorials/understanding-antara-addresses": { + "origImgPath": "./preview-images-original/pre-antara-tutorials-understanding-antara-addresses.jpg", + "dateModified": "2023-09-27T17:48:31.000Z", + "optImgPath": "public/preview-images/pre-antara-tutorials-understanding-antara-addresses-3213894584.jpg", + "optImgHash": 3213894584 + }, + "/historical/cc-jl/chapter00": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter00.jpg", + "dateModified": "2023-05-24T13:18:47.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter00-2340157130.jpg", + "optImgHash": 2340157130 + }, + "/historical/cc-jl/chapter01": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter01.jpg", + "dateModified": "2023-09-29T14:54:33.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter01-1932437987.jpg", + "optImgHash": 1932437987 + }, + "/historical/cc-jl/chapter02": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter02.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter02-3716561139.jpg", + "optImgHash": 3716561139 + }, + "/historical/cc-jl/chapter03": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter03.jpg", + "dateModified": "2023-05-24T13:18:47.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter03-676036756.jpg", + "optImgHash": 676036756 + }, + "/historical/cc-jl/chapter04": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter04.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter04-488134623.jpg", + "optImgHash": 488134623 + }, + "/historical/cc-jl/chapter05": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter05.jpg", + "dateModified": "2023-05-31T18:19:46.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter05-2759819640.jpg", + "optImgHash": 2759819640 + }, + "/historical/cc-jl/chapter06": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter06.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter06-41729292.jpg", + "optImgHash": 41729292 + }, + "/historical/cc-jl/chapter07": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter07.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter07-1222409524.jpg", + "optImgHash": 1222409524 + }, + "/historical/cc-jl/chapter08": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter08.jpg", + "dateModified": "2023-05-31T18:19:46.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter08-399139344.jpg", + "optImgHash": 399139344 + }, + "/historical/cc-jl/chapter09": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter09.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter09-366937812.jpg", + "optImgHash": 366937812 + }, + "/historical/cc-jl/chapter10": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter10.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter10-1210873061.jpg", + "optImgHash": 1210873061 + }, + "/historical/cc-jl/chapter11": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter11.jpg", + "dateModified": "2023-05-24T13:18:47.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter11-865671553.jpg", + "optImgHash": 865671553 + }, + "/historical/cc-jl/chapter12": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter12.jpg", + "dateModified": "2023-05-24T13:18:47.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter12-2430304571.jpg", + "optImgHash": 2430304571 + }, + "/historical/cc-jl/chapter13": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter13.jpg", + "dateModified": "2023-06-01T17:59:27.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter13-12891274.jpg", + "optImgHash": 12891274 + }, + "/historical/cc-jl/chapter14": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter14.jpg", + "dateModified": "2023-06-01T17:59:27.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter14-2295115755.jpg", + "optImgHash": 2295115755 + }, + "/historical/cc-jl/chapter15": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-chapter15.jpg", + "dateModified": "2023-06-01T17:59:27.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-chapter15-731267651.jpg", + "optImgHash": 731267651 + }, + "/historical/cc-jl/faq": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl-faq.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-faq-2751179578.jpg", + "optImgHash": 2751179578 + }, + "/historical/cc-jl": { + "origImgPath": "./preview-images-original/pre-historical-cc-jl.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-historical-cc-jl-441216941.jpg", + "optImgHash": 441216941 + }, + "/historical": { + "origImgPath": "./preview-images-original/pre-historical.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-historical-3787958327.jpg", + "optImgHash": 3787958327 + }, + "/historical/whitepaper/chapter1": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter1.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter1-2914178438.jpg", + "optImgHash": 2914178438 + }, + "/historical/whitepaper/chapter2": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter2.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter2-257889138.jpg", + "optImgHash": 257889138 + }, + "/historical/whitepaper/chapter3": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter3.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter3-2563374765.jpg", + "optImgHash": 2563374765 + }, + "/historical/whitepaper/chapter4": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter4.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter4-895929079.jpg", + "optImgHash": 895929079 + }, + "/historical/whitepaper/chapter5": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter5.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter5-44195156.jpg", + "optImgHash": 44195156 + }, + "/historical/whitepaper/chapter6": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter6.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter6-3296714751.jpg", + "optImgHash": 3296714751 + }, + "/historical/whitepaper/chapter7": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter7.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter7-604978196.jpg", + "optImgHash": 604978196 + }, + "/historical/whitepaper/chapter8": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-chapter8.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-chapter8-1978382335.jpg", + "optImgHash": 1978382335 + }, + "/historical/whitepaper": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-4041267999.jpg", + "optImgHash": 4041267999 + }, + "/historical/whitepaper/references": { + "origImgPath": "./preview-images-original/pre-historical-whitepaper-references.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-historical-whitepaper-references-3033678080.jpg", + "optImgHash": 3033678080 + }, + "/": { + "origImgPath": "./preview-images-original/pre-.jpg", + "dateModified": "2024-04-11T22:59:47.000Z", + "optImgPath": "public/preview-images/pre--4255872294.jpg", + "optImgHash": 4255872294 + }, + "/komodo/block-1m-changes": { + "origImgPath": "./preview-images-original/pre-komodo-block-1m-changes.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-block-1m-changes-2175831632.jpg", + "optImgHash": 2175831632 + }, + "/komodo/coin-emission": { + "origImgPath": "./preview-images-original/pre-komodo-coin-emission.jpg", + "dateModified": "2023-12-16T08:38:31.000Z", + "optImgPath": "public/preview-images/pre-komodo-coin-emission-2549350305.jpg", + "optImgHash": 2549350305 + }, + "/komodo/convert-pubkey-address": { + "origImgPath": "./preview-images-original/pre-komodo-convert-pubkey-address.jpg", + "dateModified": "2023-12-16T08:38:31.000Z", + "optImgPath": "public/preview-images/pre-komodo-convert-pubkey-address-2905195395.jpg", + "optImgHash": 2905195395 + }, + "/komodo/dpow-conf": { + "origImgPath": "./preview-images-original/pre-komodo-dpow-conf.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-komodo-dpow-conf-2585878297.jpg", + "optImgHash": 2585878297 + }, + "/komodo/encrypt-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-encrypt-wallet.jpg", + "dateModified": "2023-12-16T08:38:31.000Z", + "optImgPath": "public/preview-images/pre-komodo-encrypt-wallet-3898553506.jpg", + "optImgHash": 3898553506 + }, + "/komodo": { + "origImgPath": "./preview-images-original/pre-komodo.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-2453941942.jpg", + "optImgHash": 2453941942 + }, + "/komodo/multisig-transactions-on-komodo-or-smartchains": { + "origImgPath": "./preview-images-original/pre-komodo-multisig-transactions-on-komodo-or-smartchains.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-komodo-multisig-transactions-on-komodo-or-smartchains-677880419.jpg", + "optImgHash": 677880419 + }, + "/komodo/note-exchanges": { + "origImgPath": "./preview-images-original/pre-komodo-note-exchanges.jpg", + "dateModified": "2023-12-16T08:38:31.000Z", + "optImgPath": "public/preview-images/pre-komodo-note-exchanges-2871239590.jpg", + "optImgHash": 2871239590 + }, + "/komodo/npm-module-komodo-rewards": { + "origImgPath": "./preview-images-original/pre-komodo-npm-module-komodo-rewards.jpg", + "dateModified": "2023-12-16T14:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-npm-module-komodo-rewards-1534180110.jpg", + "optImgHash": 1534180110 + }, + "/komodo/python-rpc-komodod": { + "origImgPath": "./preview-images-original/pre-komodo-python-rpc-komodod.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-python-rpc-komodod-1137462542.jpg", + "optImgHash": 1137462542 + }, + "/komodo/security-setup-full-node": { + "origImgPath": "./preview-images-original/pre-komodo-security-setup-full-node.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-security-setup-full-node-3232439378.jpg", + "optImgHash": 3232439378 + }, + "/komodo/setup-electrumx-server": { + "origImgPath": "./preview-images-original/pre-komodo-setup-electrumx-server.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-setup-electrumx-server-127454611.jpg", + "optImgHash": 127454611 + }, + "/komodo/use-bitcore-lib-komodo": { + "origImgPath": "./preview-images-original/pre-komodo-use-bitcore-lib-komodo.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-use-bitcore-lib-komodo-2342258011.jpg", + "optImgHash": 2342258011 + }, + "/komodo/using-key-value": { + "origImgPath": "./preview-images-original/pre-komodo-using-key-value.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-komodo-using-key-value-829909678.jpg", + "optImgHash": 829909678 + }, + "/komodo-defi-framework/api/common_structures/activation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-activation.jpg", + "dateModified": "2024-03-08T13:34:00.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-activation-2114579195.jpg", + "optImgHash": 2114579195 + }, + "/komodo-defi-framework/api/common_structures": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures.jpg", + "dateModified": "2024-09-09T02:07:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-155134463.jpg", + "optImgHash": 155134463 + }, + "/komodo-defi-framework/api/common_structures/lightning": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-lightning.jpg", + "dateModified": "2024-03-08T09:57:54.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-lightning-447061071.jpg", + "optImgHash": 447061071 + }, + "/komodo-defi-framework/api/common_structures/nfts": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-nfts.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-nfts-787207211.jpg", + "optImgHash": 787207211 + }, + "/komodo-defi-framework/api/common_structures/orders": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-orders.jpg", + "dateModified": "2024-03-08T13:34:00.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-orders-3890162205.jpg", + "optImgHash": 3890162205 + }, + "/komodo-defi-framework/api/common_structures/swaps": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-swaps.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-swaps-3023832365.jpg", + "optImgHash": 3023832365 + }, + "/komodo-defi-framework/api/common_structures/swaps/maker_events": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-swaps-maker_events.jpg", + "dateModified": "2024-03-08T10:08:50.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-swaps-maker_events-1233602732.jpg", + "optImgHash": 1233602732 + }, + "/komodo-defi-framework/api/common_structures/swaps/taker_events": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-swaps-taker_events.jpg", + "dateModified": "2024-03-08T10:08:50.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-swaps-taker_events-1334269687.jpg", + "optImgHash": 1334269687 + }, + "/komodo-defi-framework/api/common_structures/wallet": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-common_structures-wallet.jpg", + "dateModified": "2024-03-08T13:34:00.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-common_structures-wallet-1331375096.jpg", + "optImgHash": 1331375096 + }, + "/komodo-defi-framework/api": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api.jpg", + "dateModified": "2024-08-01T13:23:13.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-2850307920.jpg", + "optImgHash": 2850307920 + }, + "/komodo-defi-framework/api/legacy/active_swaps": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-active_swaps.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-active_swaps-754682421.jpg", + "optImgHash": 754682421 + }, + "/komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-all_swaps_uuids_by_filter-1309363952.jpg", + "optImgHash": 1309363952 + }, + "/komodo-defi-framework/api/legacy/ban_pubkey": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-ban_pubkey.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-ban_pubkey-3089385803.jpg", + "optImgHash": 3089385803 + }, + "/komodo-defi-framework/api/legacy/batch_requests": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-batch_requests.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-batch_requests-1451757182.jpg", + "optImgHash": 1451757182 + }, + "/komodo-defi-framework/api/legacy/best_orders": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-best_orders.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-best_orders-1795579084.jpg", + "optImgHash": 1795579084 + }, + "/komodo-defi-framework/api/legacy/buy": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-buy.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-buy-293673431.jpg", + "optImgHash": 293673431 + }, + "/komodo-defi-framework/api/legacy/cancel_all_orders": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-cancel_all_orders.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-cancel_all_orders-77965868.jpg", + "optImgHash": 77965868 + }, + "/komodo-defi-framework/api/legacy/cancel_order": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-cancel_order.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-cancel_order-1838179933.jpg", + "optImgHash": 1838179933 + }, + "/komodo-defi-framework/api/legacy/coin_activation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-coin_activation.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-coin_activation-3347071182.jpg", + "optImgHash": 3347071182 + }, + "/komodo-defi-framework/api/legacy/coins_needed_for_kick_start": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-coins_needed_for_kick_start-2613294757.jpg", + "optImgHash": 2613294757 + }, + "/komodo-defi-framework/api/legacy/convert_utxo_address": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-convert_utxo_address.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-convert_utxo_address-3426776345.jpg", + "optImgHash": 3426776345 + }, + "/komodo-defi-framework/api/legacy/convertaddress": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-convertaddress.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-convertaddress-2382411790.jpg", + "optImgHash": 2382411790 + }, + "/komodo-defi-framework/api/legacy/disable_coin": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-disable_coin.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-disable_coin-3677150677.jpg", + "optImgHash": 3677150677 + }, + "/komodo-defi-framework/api/legacy/get_enabled_coins": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_enabled_coins.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_enabled_coins-499785809.jpg", + "optImgHash": 499785809 + }, + "/komodo-defi-framework/api/legacy/get_gossip_mesh": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_gossip_mesh.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_gossip_mesh-635938107.jpg", + "optImgHash": 635938107 + }, + "/komodo-defi-framework/api/legacy/get_gossip_peer_topics": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_gossip_peer_topics-476564779.jpg", + "optImgHash": 476564779 + }, + "/komodo-defi-framework/api/legacy/get_gossip_topic_peers": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_gossip_topic_peers-3052915927.jpg", + "optImgHash": 3052915927 + }, + "/komodo-defi-framework/api/legacy/get_my_peer_id": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_my_peer_id.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_my_peer_id-1958905620.jpg", + "optImgHash": 1958905620 + }, + "/komodo-defi-framework/api/legacy/get_peers_info": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_peers_info.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_peers_info-885956695.jpg", + "optImgHash": 885956695 + }, + "/komodo-defi-framework/api/legacy/get_relay_mesh": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_relay_mesh.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_relay_mesh-3855592762.jpg", + "optImgHash": 3855592762 + }, + "/komodo-defi-framework/api/legacy/get_trade_fee": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-get_trade_fee.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-get_trade_fee-2310144901.jpg", + "optImgHash": 2310144901 + }, + "/komodo-defi-framework/api/legacy/help": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-help.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-help-373823048.jpg", + "optImgHash": 373823048 + }, + "/komodo-defi-framework/api/legacy/import_swaps": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-import_swaps.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-import_swaps-699361456.jpg", + "optImgHash": 699361456 + }, + "/komodo-defi-framework/api/legacy": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-3840475833.jpg", + "optImgHash": 3840475833 + }, + "/komodo-defi-framework/api/legacy/kmd_rewards_info": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-kmd_rewards_info.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-kmd_rewards_info-3001120312.jpg", + "optImgHash": 3001120312 + }, + "/komodo-defi-framework/api/legacy/list_banned_pubkeys": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-list_banned_pubkeys-2478519554.jpg", + "optImgHash": 2478519554 + }, + "/komodo-defi-framework/api/legacy/max_taker_vol": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-max_taker_vol.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-max_taker_vol-3170793171.jpg", + "optImgHash": 3170793171 + }, + "/komodo-defi-framework/api/legacy/metrics": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-metrics.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-metrics-3811153196.jpg", + "optImgHash": 3811153196 + }, + "/komodo-defi-framework/api/legacy/min_trading_vol": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-min_trading_vol.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-min_trading_vol-1507043886.jpg", + "optImgHash": 1507043886 + }, + "/komodo-defi-framework/api/legacy/my_balance": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-my_balance.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-my_balance-2502509667.jpg", + "optImgHash": 2502509667 + }, + "/komodo-defi-framework/api/legacy/my_orders": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-my_orders.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-my_orders-727646760.jpg", + "optImgHash": 727646760 + }, + "/komodo-defi-framework/api/legacy/my_recent_swaps": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-my_recent_swaps.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-my_recent_swaps-389229144.jpg", + "optImgHash": 389229144 + }, + "/komodo-defi-framework/api/legacy/my_swap_status": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-my_swap_status.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-my_swap_status-633613739.jpg", + "optImgHash": 633613739 + }, + "/komodo-defi-framework/api/legacy/my_tx_history": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-my_tx_history.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-my_tx_history-3229236155.jpg", + "optImgHash": 3229236155 + }, + "/komodo-defi-framework/api/legacy/order_status": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-order_status.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-order_status-930219666.jpg", + "optImgHash": 930219666 + }, + "/komodo-defi-framework/api/legacy/orderbook": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-orderbook.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-orderbook-3158026256.jpg", + "optImgHash": 3158026256 + }, + "/komodo-defi-framework/api/legacy/orderbook_depth": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-orderbook_depth.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-orderbook_depth-2119719434.jpg", + "optImgHash": 2119719434 + }, + "/komodo-defi-framework/api/legacy/orders_history_by_filter": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-orders_history_by_filter.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-orders_history_by_filter-514479563.jpg", + "optImgHash": 514479563 + }, + "/komodo-defi-framework/api/legacy/rational_number_note": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-rational_number_note.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-rational_number_note-2451532720.jpg", + "optImgHash": 2451532720 + }, + "/komodo-defi-framework/api/legacy/recover_funds_of_swap": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-recover_funds_of_swap-4166720493.jpg", + "optImgHash": 4166720493 + }, + "/komodo-defi-framework/api/legacy/sell": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-sell.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-sell-395966795.jpg", + "optImgHash": 395966795 + }, + "/komodo-defi-framework/api/legacy/send_raw_transaction": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-send_raw_transaction.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-send_raw_transaction-2955171219.jpg", + "optImgHash": 2955171219 + }, + "/komodo-defi-framework/api/legacy/set_required_confirmations": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-set_required_confirmations.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-set_required_confirmations-3810167133.jpg", + "optImgHash": 3810167133 + }, + "/komodo-defi-framework/api/legacy/set_requires_notarization": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-set_requires_notarization.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-set_requires_notarization-3082399964.jpg", + "optImgHash": 3082399964 + }, + "/komodo-defi-framework/api/legacy/setprice": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-setprice.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-setprice-1546453540.jpg", + "optImgHash": 1546453540 + }, + "/komodo-defi-framework/api/legacy/show_priv_key": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-show_priv_key.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-show_priv_key-739917188.jpg", + "optImgHash": 739917188 + }, + "/komodo-defi-framework/api/legacy/stop": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-stop.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-stop-4165609583.jpg", + "optImgHash": 4165609583 + }, + "/komodo-defi-framework/api/legacy/trade_preimage": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-trade_preimage.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-trade_preimage-158733935.jpg", + "optImgHash": 158733935 + }, + "/komodo-defi-framework/api/legacy/unban_pubkeys": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-unban_pubkeys.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-unban_pubkeys-1349503962.jpg", + "optImgHash": 1349503962 + }, + "/komodo-defi-framework/api/legacy/update_maker_order": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-update_maker_order.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-update_maker_order-3723160043.jpg", + "optImgHash": 3723160043 + }, + "/komodo-defi-framework/api/legacy/validateaddress": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-validateaddress.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-validateaddress-1507012887.jpg", + "optImgHash": 1507012887 + }, + "/komodo-defi-framework/api/legacy/version": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-version.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-version-3748373024.jpg", + "optImgHash": 3748373024 + }, + "/komodo-defi-framework/api/legacy/withdraw": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-legacy-withdraw.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-legacy-withdraw-890170272.jpg", + "optImgHash": 890170272 + }, + "/komodo-defi-framework/api/v20/add_delegation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-add_delegation.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-add_delegation-3134425592.jpg", + "optImgHash": 3134425592 + }, + "/komodo-defi-framework/api/v20/add_node_to_version_stat": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-add_node_to_version_stat.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-add_node_to_version_stat-3572795751.jpg", + "optImgHash": 3572795751 + }, + "/komodo-defi-framework/api/v20/best_orders": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-best_orders.jpg", + "dateModified": "2024-03-29T07:08:19.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-best_orders-652415415.jpg", + "optImgHash": 652415415 + }, + "/komodo-defi-framework/api/v20/enable_bch_with_tokens": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_bch_with_tokens-1440778307.jpg", + "optImgHash": 1440778307 + }, + "/komodo-defi-framework/api/v20/enable_erc20": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_erc20.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_erc20-2154377381.jpg", + "optImgHash": 2154377381 + }, + "/komodo-defi-framework/api/v20/enable_eth_with_tokens": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_eth_with_tokens-2849570415.jpg", + "optImgHash": 2849570415 + }, + "/komodo-defi-framework/api/v20/enable_slp": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_slp.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_slp-1551541576.jpg", + "optImgHash": 1551541576 + }, + "/komodo-defi-framework/api/v20/enable_tendermint_token": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_tendermint_token.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_tendermint_token-142898505.jpg", + "optImgHash": 142898505 + }, + "/komodo-defi-framework/api/v20/enable_tendermint_with_assets": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-enable_tendermint_with_assets-3046650939.jpg", + "optImgHash": 3046650939 + }, + "/komodo-defi-framework/api/v20/get_public_key": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-get_public_key.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-get_public_key-2350736898.jpg", + "optImgHash": 2350736898 + }, + "/komodo-defi-framework/api/v20/get_public_key_hash": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-get_public_key_hash.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-get_public_key_hash-1531038858.jpg", + "optImgHash": 1531038858 + }, + "/komodo-defi-framework/api/v20/get_raw_transaction": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-get_raw_transaction.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-get_raw_transaction-1047777588.jpg", + "optImgHash": 1047777588 + }, + "/komodo-defi-framework/api/v20/get_staking_infos": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-get_staking_infos.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-get_staking_infos-2362117921.jpg", + "optImgHash": 2362117921 + }, + "/komodo-defi-framework/api/v20": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-161443140.jpg", + "optImgHash": 161443140 + }, + "/komodo-defi-framework/api/v20/message_signing": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-message_signing.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-message_signing-3293362873.jpg", + "optImgHash": 3293362873 + }, + "/komodo-defi-framework/api/v20/my_tx_history": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-my_tx_history.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-my_tx_history-1759955145.jpg", + "optImgHash": 1759955145 + }, + "/komodo-defi-framework/api/v20/orderbook": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-orderbook.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-orderbook-3179390631.jpg", + "optImgHash": 3179390631 + }, + "/komodo-defi-framework/api/v20/recreate_swap_data": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-recreate_swap_data.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-recreate_swap_data-3014890027.jpg", + "optImgHash": 3014890027 + }, + "/komodo-defi-framework/api/v20/remove_delegation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-remove_delegation.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-remove_delegation-1516100793.jpg", + "optImgHash": 1516100793 + }, + "/komodo-defi-framework/api/v20/remove_node_from_version_stat": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-remove_node_from_version_stat-2151522901.jpg", + "optImgHash": 2151522901 + }, + "/komodo-defi-framework/api/v20/sign_raw_transaction": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-sign_raw_transaction.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-sign_raw_transaction-3264705103.jpg", + "optImgHash": 3264705103 + }, + "/komodo-defi-framework/api/v20/start_simple_market_maker_bot": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot.jpg", + "dateModified": "2024-09-09T02:16:09.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-start_simple_market_maker_bot-1609456080.jpg", + "optImgHash": 1609456080 + }, + "/komodo-defi-framework/api/v20/start_version_stat_collection": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-start_version_stat_collection.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-start_version_stat_collection-1901016822.jpg", + "optImgHash": 1901016822 + }, + "/komodo-defi-framework/api/v20/stop_simple_market_maker_bot": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-stop_simple_market_maker_bot-2998197087.jpg", + "optImgHash": 2998197087 + }, + "/komodo-defi-framework/api/v20/stop_version_stat_collection": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-stop_version_stat_collection.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-stop_version_stat_collection-4256989422.jpg", + "optImgHash": 4256989422 + }, + "/komodo-defi-framework/api/v20/telegram_alerts": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-telegram_alerts.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-telegram_alerts-89387043.jpg", + "optImgHash": 89387043 + }, + "/komodo-defi-framework/api/v20/trade_preimage": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-trade_preimage.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-trade_preimage-3171113132.jpg", + "optImgHash": 3171113132 + }, + "/komodo-defi-framework/api/v20/update_version_stat_collection": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-update_version_stat_collection.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-update_version_stat_collection-3018148710.jpg", + "optImgHash": 3018148710 + }, + "/komodo-defi-framework/api/v20/withdraw": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-withdraw.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-withdraw-2075631168.jpg", + "optImgHash": 2075631168 + }, + "/komodo-defi-framework/api/v20-dev/get_current_mtp": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-get_current_mtp.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-get_current_mtp-3569363414.jpg", + "optImgHash": 3569363414 + }, + "/komodo-defi-framework/api/v20-dev/get_locked_amount": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-get_locked_amount.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-get_locked_amount-300179839.jpg", + "optImgHash": 300179839 + }, + "/komodo-defi-framework/api/v20-dev/hd_address_management": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-hd_address_management.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-hd_address_management-802824538.jpg", + "optImgHash": 802824538 + }, + "/komodo-defi-framework/api/v20-dev/hd_wallets_overview": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview.jpg", + "dateModified": "2024-03-08T10:06:13.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-hd_wallets_overview-2301684677.jpg", + "optImgHash": 2301684677 + }, + "/komodo-defi-framework/api/v20-dev": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-737230988.jpg", + "optImgHash": 737230988 + }, + "/komodo-defi-framework/api/v20-dev/lightning/activation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-lightning-activation.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-lightning-activation-3730261304.jpg", + "optImgHash": 3730261304 + }, + "/komodo-defi-framework/api/v20-dev/lightning/channels": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-lightning-channels.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-lightning-channels-3787397205.jpg", + "optImgHash": 3787397205 + }, + "/komodo-defi-framework/api/v20-dev/lightning": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-lightning.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-lightning-2047464531.jpg", + "optImgHash": 2047464531 + }, + "/komodo-defi-framework/api/v20-dev/lightning/nodes": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-lightning-nodes.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-lightning-nodes-2944325057.jpg", + "optImgHash": 2944325057 + }, + "/komodo-defi-framework/api/v20-dev/lightning/payments": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-lightning-payments.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-lightning-payments-1110123739.jpg", + "optImgHash": 1110123739 + }, + "/komodo-defi-framework/api/v20-dev/max_maker_vol": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-max_maker_vol.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-max_maker_vol-1789884510.jpg", + "optImgHash": 1789884510 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-clear_nft_db-1237219627.jpg", + "optImgHash": 1237219627 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_list-4152571562.jpg", + "optImgHash": 4152571562 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_metadata-4059112531.jpg", + "optImgHash": 4059112531 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-get_nft_transfers-2157425007.jpg", + "optImgHash": 2157425007 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-3937377185.jpg", + "optImgHash": 3937377185 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-query_nft_database_tables-4202278143.jpg", + "optImgHash": 4202278143 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-refresh_nft_metadata-2476320241.jpg", + "optImgHash": 2476320241 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-update_nft-4043058148.jpg", + "optImgHash": 4043058148 + }, + "/komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-non_fungible_tokens-withdraw_nft-992781553.jpg", + "optImgHash": 992781553 + }, + "/komodo-defi-framework/api/v20-dev/task_account_balance": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_account_balance.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_account_balance-2722490907.jpg", + "optImgHash": 2722490907 + }, + "/komodo-defi-framework/api/v20-dev/task_create_new_account": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_create_new_account.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_create_new_account-122533799.jpg", + "optImgHash": 122533799 + }, + "/komodo-defi-framework/api/v20-dev/task_enable_qtum": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_enable_qtum-809154044.jpg", + "optImgHash": 809154044 + }, + "/komodo-defi-framework/api/v20-dev/task_enable_utxo": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_enable_utxo-3232471726.jpg", + "optImgHash": 3232471726 + }, + "/komodo-defi-framework/api/v20-dev/task_init_trezor": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_init_trezor.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_init_trezor-666231596.jpg", + "optImgHash": 666231596 + }, + "/komodo-defi-framework/api/v20-dev/task_withdraw": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-task_withdraw.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-task_withdraw-1912125596.jpg", + "optImgHash": 1912125596 + }, + "/komodo-defi-framework/api/v20-dev/zhtlc_coins/activation": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation.jpg", + "dateModified": "2024-07-08T12:16:22.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-activation-2023662594.jpg", + "optImgHash": 2023662594 + }, + "/komodo-defi-framework/api/v20-dev/zhtlc_coins": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-401186782.jpg", + "optImgHash": 401186782 + }, + "/komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-dev-zhtlc_coins-transaction_history-3552325395.jpg", + "optImgHash": 3552325395 + }, + "/komodo-defi-framework/changelog": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-changelog.jpg", + "dateModified": "2024-08-02T13:26:41.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-changelog-1046684114.jpg", + "optImgHash": 1046684114 + }, + "/komodo-defi-framework": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework.jpg", + "dateModified": "2024-04-11T16:31:02.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-330624540.jpg", + "optImgHash": 330624540 + }, + "/komodo-defi-framework/setup/configure-mm2-json": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-setup-configure-mm2-json.jpg", + "dateModified": "2024-09-13T08:45:00.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-setup-configure-mm2-json-1657103718.jpg", + "optImgHash": 1657103718 + }, + "/komodo-defi-framework/setup": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-setup.jpg", + "dateModified": "2024-06-14T01:07:38.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-setup-2584083581.jpg", + "optImgHash": 2584083581 + }, + "/komodo-defi-framework/tutorials/additional-information": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-additional-information.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-additional-information-727219591.jpg", + "optImgHash": 727219591 + }, + "/komodo-defi-framework/tutorials/api-docker-telegram": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-api-docker-telegram.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-api-docker-telegram-2423430646.jpg", + "optImgHash": 2423430646 + }, + "/komodo-defi-framework/tutorials/api-metrics": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-api-metrics.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-api-metrics-2251943159.jpg", + "optImgHash": 2251943159 + }, + "/komodo-defi-framework/tutorials/api-walkthrough": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-api-walkthrough.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-api-walkthrough-926853183.jpg", + "optImgHash": 926853183 + }, + "/komodo-defi-framework/tutorials/coins-file-update": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-coins-file-update.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-coins-file-update-4102323242.jpg", + "optImgHash": 4102323242 + }, + "/komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-how-to-become-a-liquidity-provider-3437911842.jpg", + "optImgHash": 3437911842 + }, + "/komodo-defi-framework/tutorials/how-to-compile-mm2-from-source": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-how-to-compile-mm2-from-source-3233383454.jpg", + "optImgHash": 3233383454 + }, + "/komodo-defi-framework/tutorials": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-797828077.jpg", + "optImgHash": 797828077 + }, + "/komodo-defi-framework/tutorials/listing-a-new-coin": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-listing-a-new-coin.jpg", + "dateModified": "2024-09-13T09:22:44.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-listing-a-new-coin-1409670792.jpg", + "optImgHash": 1409670792 + }, + "/komodo-defi-framework/tutorials/query-the-mm2-database": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-query-the-mm2-database.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-query-the-mm2-database-759455021.jpg", + "optImgHash": 759455021 + }, + "/komodo-defi-framework/tutorials/setup-komodefi-api-aws": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-setup-komodefi-api-aws-3288674343.jpg", + "optImgHash": 3288674343 + }, + "/komodo-defi-framework/tutorials/using-komodefi-cli-in-console": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console.jpg", + "dateModified": "2024-08-15T14:40:28.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-tutorials-using-komodefi-cli-in-console-2335968276.jpg", + "optImgHash": 2335968276 + }, + "/komodo-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-wallet.jpg", + "dateModified": "2024-04-21T19:29:47.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-1076441739.jpg", + "optImgHash": 1076441739 + }, + "/komodo-wallet/mobile/add-and-activate-coins": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-add-and-activate-coins.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-add-and-activate-coins-1592367186.jpg", + "optImgHash": 1592367186 + }, + "/komodo-wallet/mobile/create-a-new-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-create-a-new-wallet.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-create-a-new-wallet-1479470862.jpg", + "optImgHash": 1479470862 + }, + "/komodo-wallet/mobile/delete-seed-phrase": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-delete-seed-phrase.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-delete-seed-phrase-128008029.jpg", + "optImgHash": 128008029 + }, + "/komodo-wallet/mobile": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile.jpg", + "dateModified": "2024-03-15T15:40:17.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-2058550606.jpg", + "optImgHash": 2058550606 + }, + "/komodo-wallet/mobile/perform-cross-chain-atomic-swaps": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-perform-cross-chain-atomic-swaps-3546377675.jpg", + "optImgHash": 3546377675 + }, + "/komodo-wallet/mobile/recover-seed-phrase": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-recover-seed-phrase.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-recover-seed-phrase-2321558318.jpg", + "optImgHash": 2321558318 + }, + "/komodo-wallet/mobile/restore-a-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-restore-a-wallet.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-restore-a-wallet-1931074511.jpg", + "optImgHash": 1931074511 + }, + "/komodo-wallet/mobile/view-ongoing-orders-and-swap-history": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-view-ongoing-orders-and-swap-history-3662606680.jpg", + "optImgHash": 3662606680 + }, + "/komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-view-your-receiving-address-to-send-funds-for-trading-741277830.jpg", + "optImgHash": 741277830 + }, + "/komodo-wallet/mobile/withdraw-or-send-funds": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-mobile-withdraw-or-send-funds.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-mobile-withdraw-or-send-funds-874669242.jpg", + "optImgHash": 874669242 + }, + "/notary/generate-privkeys-for-third-party-coins-from-passphrase": { + "origImgPath": "./preview-images-original/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-notary-generate-privkeys-for-third-party-coins-from-passphrase-1863208961.jpg", + "optImgHash": 1863208961 + }, + "/notary": { + "origImgPath": "./preview-images-original/pre-notary.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-notary-3669955253.jpg", + "optImgHash": 3669955253 + }, + "/notary/split-utxo-for-notarization": { + "origImgPath": "./preview-images-original/pre-notary-split-utxo-for-notarization.jpg", + "dateModified": "2024-02-16T13:57:43.000Z", + "optImgPath": "public/preview-images/pre-notary-split-utxo-for-notarization-1518700297.jpg", + "optImgHash": 1518700297 + }, + "/notary/update-komodo-manually": { + "origImgPath": "./preview-images-original/pre-notary-update-komodo-manually.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-notary-update-komodo-manually-1668170991.jpg", + "optImgHash": 1668170991 + }, + "/notary/useful-commands-for-komodo-notary-node": { + "origImgPath": "./preview-images-original/pre-notary-useful-commands-for-komodo-notary-node.jpg", + "dateModified": "2023-12-17T18:46:24.000Z", + "optImgPath": "public/preview-images/pre-notary-useful-commands-for-komodo-notary-node-3278090656.jpg", + "optImgHash": 3278090656 + }, + "/qa/adb-logcat": { + "origImgPath": "./preview-images-original/pre-qa-adb-logcat.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-qa-adb-logcat-542246100.jpg", + "optImgHash": 542246100 + }, + "/qa/blockscout-deployment-guide": { + "origImgPath": "./preview-images-original/pre-qa-blockscout-deployment-guide.jpg", + "dateModified": "2023-12-19T13:02:52.000Z", + "optImgPath": "public/preview-images/pre-qa-blockscout-deployment-guide-2016560058.jpg", + "optImgHash": 2016560058 + }, + "/qa/debug-komodo": { + "origImgPath": "./preview-images-original/pre-qa-debug-komodo.jpg", + "dateModified": "2024-03-04T15:37:32.000Z", + "optImgPath": "public/preview-images/pre-qa-debug-komodo-2989066092.jpg", + "optImgHash": 2989066092 + }, + "/qa/extract-swap-data-komodo-wallet-log": { + "origImgPath": "./preview-images-original/pre-qa-extract-swap-data-komodo-wallet-log.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-qa-extract-swap-data-komodo-wallet-log-2667790138.jpg", + "optImgHash": 2667790138 + }, + "/qa": { + "origImgPath": "./preview-images-original/pre-qa.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-qa-1705673986.jpg", + "optImgHash": 1705673986 + }, + "/qa/komodefi-api-quickstart": { + "origImgPath": "./preview-images-original/pre-qa-komodefi-api-quickstart.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-qa-komodefi-api-quickstart-3922256711.jpg", + "optImgHash": 3922256711 + }, + "/qa/komodo-desktop-wallet-build": { + "origImgPath": "./preview-images-original/pre-qa-komodo-desktop-wallet-build.jpg", + "dateModified": "2024-03-08T13:29:26.000Z", + "optImgPath": "public/preview-images/pre-qa-komodo-desktop-wallet-build-4274745949.jpg", + "optImgHash": 4274745949 + }, + "/qa/recover-komodo-mobile-wallet-swap-on-desktop": { + "origImgPath": "./preview-images-original/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-qa-recover-komodo-mobile-wallet-swap-on-desktop-605218886.jpg", + "optImgHash": 605218886 + }, + "/qa/test-komodo-source-jl777-branch": { + "origImgPath": "./preview-images-original/pre-qa-test-komodo-source-jl777-branch.jpg", + "dateModified": "2024-02-15T09:17:33.000Z", + "optImgPath": "public/preview-images/pre-qa-test-komodo-source-jl777-branch-115672862.jpg", + "optImgHash": 115672862 + }, + "/resources": { + "origImgPath": "./preview-images-original/pre-resources.jpg", + "dateModified": "2023-12-18T17:07:32.000Z", + "optImgPath": "public/preview-images/pre-resources-3873437733.jpg", + "optImgHash": 3873437733 + }, + "/resources/third-party": { + "origImgPath": "./preview-images-original/pre-resources-third-party.jpg", + "dateModified": "2024-02-15T07:35:14.000Z", + "optImgPath": "public/preview-images/pre-resources-third-party-2355849436.jpg", + "optImgHash": 2355849436 + }, + "/smart-chains/api/address": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-address.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-address-946143462.jpg", + "optImgHash": 946143462 + }, + "/smart-chains/api/blockchain": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-blockchain.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-blockchain-3967065026.jpg", + "optImgHash": 3967065026 + }, + "/smart-chains/api/cclib": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-cclib.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-cclib-88328145.jpg", + "optImgHash": 88328145 + }, + "/smart-chains/api/control": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-control.jpg", + "dateModified": "2023-09-05T12:43:04.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-control-177911633.jpg", + "optImgHash": 177911633 + }, + "/smart-chains/api/crosschain": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-crosschain.jpg", + "dateModified": "2024-02-15T07:35:14.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-crosschain-1595064989.jpg", + "optImgHash": 1595064989 + }, + "/smart-chains/api/disclosure": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-disclosure.jpg", + "dateModified": "2023-10-04T06:26:45.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-disclosure-138774134.jpg", + "optImgHash": 138774134 + }, + "/smart-chains/api/generate": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-generate.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-generate-919716.jpg", + "optImgHash": 919716 + }, + "/smart-chains/api": { + "origImgPath": "./preview-images-original/pre-smart-chains-api.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-1167091449.jpg", + "optImgHash": 1167091449 + }, + "/smart-chains/api/jumblr": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-jumblr.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-jumblr-3166836139.jpg", + "optImgHash": 3166836139 + }, + "/smart-chains/api/mining": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-mining.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-mining-3672281986.jpg", + "optImgHash": 3672281986 + }, + "/smart-chains/api/network": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-network.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-network-554745749.jpg", + "optImgHash": 554745749 + }, + "/smart-chains/api/nspv": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-nspv.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-nspv-1279425790.jpg", + "optImgHash": 1279425790 + }, + "/smart-chains/api/rawtransactions": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-rawtransactions.jpg", + "dateModified": "2023-10-05T08:59:16.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-rawtransactions-1606388255.jpg", + "optImgHash": 1606388255 + }, + "/smart-chains/api/util": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-util.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-util-2415356681.jpg", + "optImgHash": 2415356681 + }, + "/smart-chains/api/wallet": { + "origImgPath": "./preview-images-original/pre-smart-chains-api-wallet.jpg", + "dateModified": "2024-03-08T13:34:00.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-api-wallet-2726190972.jpg", + "optImgHash": 2726190972 + }, + "/smart-chains/changelog": { + "origImgPath": "./preview-images-original/pre-smart-chains-changelog.jpg", + "dateModified": "2024-02-09T13:52:20.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-changelog-3437132146.jpg", + "optImgHash": 3437132146 + }, + "/smart-chains": { + "origImgPath": "./preview-images-original/pre-smart-chains.jpg", + "dateModified": "2023-12-15T11:00:16.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-1443304337.jpg", + "optImgHash": 1443304337 + }, + "/smart-chains/setup/common-runtime-parameters": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-common-runtime-parameters.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-common-runtime-parameters-1814473463.jpg", + "optImgHash": 1814473463 + }, + "/smart-chains/setup/dexp2p": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-dexp2p.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-dexp2p-2829455039.jpg", + "optImgHash": 2829455039 + }, + "/smart-chains/setup/ecosystem-launch-parameters": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-ecosystem-launch-parameters.jpg", + "dateModified": "2023-06-01T17:59:27.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-ecosystem-launch-parameters-3223677757.jpg", + "optImgHash": 3223677757 + }, + "/smart-chains/setup": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-3661469408.jpg", + "optImgHash": 3661469408 + }, + "/smart-chains/setup/installing-from-source": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-installing-from-source.jpg", + "dateModified": "2024-03-11T12:23:42.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-installing-from-source-4246117987.jpg", + "optImgHash": 4246117987 + }, + "/smart-chains/setup/interacting-with-smart-chains": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-interacting-with-smart-chains.jpg", + "dateModified": "2023-09-27T20:43:30.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-interacting-with-smart-chains-2605590208.jpg", + "optImgHash": 2605590208 + }, + "/smart-chains/setup/nspv": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-nspv.jpg", + "dateModified": "2024-03-12T16:57:58.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-nspv-1411790762.jpg", + "optImgHash": 1411790762 + }, + "/smart-chains/setup/smart-chain-maintenance": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-smart-chain-maintenance.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-smart-chain-maintenance-2741549100.jpg", + "optImgHash": 2741549100 + }, + "/smart-chains/setup/updating-from-source": { + "origImgPath": "./preview-images-original/pre-smart-chains-setup-updating-from-source.jpg", + "dateModified": "2023-06-01T17:59:27.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-setup-updating-from-source-732543822.jpg", + "optImgHash": 732543822 + }, + "/smart-chains/tutorials/basic-environment-setup-for-linux-vps": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-basic-environment-setup-for-linux-vps-919538534.jpg", + "optImgHash": 919538534 + }, + "/smart-chains/tutorials/create-a-default-smart-chain": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-create-a-default-smart-chain.jpg", + "dateModified": "2024-03-11T05:16:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-create-a-default-smart-chain-1225709462.jpg", + "optImgHash": 1225709462 + }, + "/smart-chains/tutorials/creating-a-smart-chain-on-a-single-node": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-creating-a-smart-chain-on-a-single-node-3559995386.jpg", + "optImgHash": 3559995386 + }, + "/smart-chains/tutorials/example-smart-chains": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-example-smart-chains.jpg", + "dateModified": "2024-03-11T12:10:28.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-example-smart-chains-1457672239.jpg", + "optImgHash": 1457672239 + }, + "/smart-chains/tutorials/get-new-pubkey": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-get-new-pubkey.jpg", + "dateModified": "2023-12-15T09:10:12.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-get-new-pubkey-1203472933.jpg", + "optImgHash": 1203472933 + }, + "/smart-chains/tutorials": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-4027455858.jpg", + "optImgHash": 4027455858 + }, + "/smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-multisignature-transaction-creation-and-walkthrough-1217068727.jpg", + "optImgHash": 1217068727 + }, + "/smart-chains/tutorials/publish-download-files-dexp2p": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-publish-download-files-dexp2p.jpg", + "dateModified": "2024-04-01T13:25:56.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-publish-download-files-dexp2p-4252024580.jpg", + "optImgHash": 4252024580 + }, + "/smart-chains/tutorials/running-komodo-software-in-debug-mode": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode.jpg", + "dateModified": "2023-09-01T12:11:07.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-running-komodo-software-in-debug-mode-1683643021.jpg", + "optImgHash": 1683643021 + }, + "/smart-chains/tutorials/smart-chain-api-basics": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-smart-chain-api-basics.jpg", + "dateModified": "2024-03-08T07:30:33.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-smart-chain-api-basics-1218327888.jpg", + "optImgHash": 1218327888 + }, + "/smart-chains/tutorials/streaming-dexp2p": { + "origImgPath": "./preview-images-original/pre-smart-chains-tutorials-streaming-dexp2p.jpg", + "dateModified": "2024-04-03T09:17:49.000Z", + "optImgPath": "public/preview-images/pre-smart-chains-tutorials-streaming-dexp2p-1985251643.jpg", + "optImgHash": 1985251643 + }, + "/start-here/about-komodo-platform": { + "origImgPath": "./preview-images-original/pre-start-here-about-komodo-platform.jpg", + "dateModified": "2024-04-11T17:48:23.000Z", + "optImgPath": "public/preview-images/pre-start-here-about-komodo-platform-267909821.jpg", + "optImgHash": 267909821 + }, + "/start-here/about-komodo-platform/orientation": { + "origImgPath": "./preview-images-original/pre-start-here-about-komodo-platform-orientation.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-start-here-about-komodo-platform-orientation-4287725904.jpg", + "optImgHash": 4287725904 + }, + "/start-here/about-komodo-platform/product-introductions": { + "origImgPath": "./preview-images-original/pre-start-here-about-komodo-platform-product-introductions.jpg", + "dateModified": "2024-04-11T22:59:47.000Z", + "optImgPath": "public/preview-images/pre-start-here-about-komodo-platform-product-introductions-446474931.jpg", + "optImgHash": 446474931 + }, + "/start-here/about-komodo-platform/simple-installations": { + "origImgPath": "./preview-images-original/pre-start-here-about-komodo-platform-simple-installations.jpg", + "dateModified": "2024-03-09T08:32:18.000Z", + "optImgPath": "public/preview-images/pre-start-here-about-komodo-platform-simple-installations-2182937512.jpg", + "optImgHash": 2182937512 + }, + "/start-here/core-technology-discussions/antara": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-antara.jpg", + "dateModified": "2023-05-24T13:18:47.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-antara-3552774782.jpg", + "optImgHash": 3552774782 + }, + "/start-here/core-technology-discussions/delayed-proof-of-work": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-delayed-proof-of-work.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-delayed-proof-of-work-3093384068.jpg", + "optImgHash": 3093384068 + }, + "/start-here/core-technology-discussions": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions.jpg", + "dateModified": "2024-02-15T07:35:14.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-3176086791.jpg", + "optImgHash": 3176086791 + }, + "/start-here/core-technology-discussions/initial-dex-offering": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-initial-dex-offering.jpg", + "dateModified": "2024-03-11T05:16:33.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-initial-dex-offering-3676377544.jpg", + "optImgHash": 3676377544 + }, + "/start-here/core-technology-discussions/komodo-defi-framework": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-komodo-defi-framework.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-komodo-defi-framework-4034665969.jpg", + "optImgHash": 4034665969 + }, + "/start-here/core-technology-discussions/komodo-sdk": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-komodo-sdk.jpg", + "dateModified": "2024-04-11T22:59:47.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-komodo-sdk-3768735936.jpg", + "optImgHash": 3768735936 + }, + "/start-here/core-technology-discussions/miscellaneous": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-miscellaneous.jpg", + "dateModified": "2024-03-08T15:53:57.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-miscellaneous-3521377063.jpg", + "optImgHash": 3521377063 + }, + "/start-here/core-technology-discussions/references": { + "origImgPath": "./preview-images-original/pre-start-here-core-technology-discussions-references.jpg", + "dateModified": "2023-10-03T07:36:45.000Z", + "optImgPath": "public/preview-images/pre-start-here-core-technology-discussions-references-4127050597.jpg", + "optImgHash": 4127050597 + }, + "/start-here": { + "origImgPath": "./preview-images-original/pre-start-here.jpg", + "dateModified": "2024-03-04T15:37:32.000Z", + "optImgPath": "public/preview-images/pre-start-here-1757185347.jpg", + "optImgHash": 1757185347 + }, + "/start-here/learning-launchpad/common-terminology-and-concepts": { + "origImgPath": "./preview-images-original/pre-start-here-learning-launchpad-common-terminology-and-concepts.jpg", + "dateModified": "2024-03-11T05:16:33.000Z", + "optImgPath": "public/preview-images/pre-start-here-learning-launchpad-common-terminology-and-concepts-2322486909.jpg", + "optImgHash": 2322486909 + }, + "/start-here/learning-launchpad": { + "origImgPath": "./preview-images-original/pre-start-here-learning-launchpad.jpg", + "dateModified": "2024-04-11T16:31:02.000Z", + "optImgPath": "public/preview-images/pre-start-here-learning-launchpad-4010370426.jpg", + "optImgHash": 4010370426 + }, + "/komodo/active-user-reward": { + "origImgPath": "./preview-images-original/pre-komodo-active-user-reward.jpg", + "dateModified": "2024-04-21T19:29:47.000Z", + "optImgPath": "public/preview-images/pre-komodo-active-user-reward-3498957353.jpg", + "optImgHash": 3498957353 + }, + "/komodo/vote-in-komodo-polls-and-elections/hardware-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet.jpg", + "dateModified": "2024-06-14T00:54:39.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-hardware-wallet-4165051644.jpg", + "optImgHash": 4165051644 + }, + "/komodo/vote-in-komodo-polls-and-elections": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections.jpg", + "dateModified": "2024-04-21T19:26:02.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-2515815206.jpg", + "optImgHash": 2515815206 + }, + "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop.jpg", + "dateModified": "2024-04-21T14:12:42.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-desktop-3620488383.jpg", + "optImgHash": 3620488383 + }, + "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile.jpg", + "dateModified": "2024-04-21T14:12:42.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-mobile-1540958594.jpg", + "optImgHash": 1540958594 + }, + "/komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web.jpg", + "dateModified": "2024-04-21T19:26:02.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-komodo-wallet-web-2070933118.jpg", + "optImgHash": 2070933118 + }, + "/komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet.jpg", + "dateModified": "2024-06-12T20:13:14.000Z", + "optImgPath": "public/preview-images/pre-komodo-vote-in-komodo-polls-and-elections-verus-desktop-wallet-1007769522.jpg", + "optImgHash": 1007769522 + }, + "/komodo-wallet/desktop/access-log-files": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-access-log-files.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-access-log-files-277317776.jpg", + "optImgHash": 277317776 + }, + "/komodo-wallet/desktop/activate-coins": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-activate-coins.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-activate-coins-1001654319.jpg", + "optImgHash": 1001654319 + }, + "/komodo-wallet/desktop/add-custom-tokens": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-add-custom-tokens.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-add-custom-tokens-2436754234.jpg", + "optImgHash": 2436754234 + }, + "/komodo-wallet/desktop/create-new-wallet": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-create-new-wallet.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-create-new-wallet-364117367.jpg", + "optImgHash": 364117367 + }, + "/komodo-wallet/desktop/import-private-key-or-seed-phrase": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-import-private-key-or-seed-phrase-919924172.jpg", + "optImgHash": 919924172 + }, + "/komodo-wallet/desktop": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop.jpg", + "dateModified": "2024-03-26T15:48:36.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-3787384663.jpg", + "optImgHash": 3787384663 + }, + "/komodo-wallet/desktop/reset-configuration-to-default": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-reset-configuration-to-default.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-reset-configuration-to-default-824190692.jpg", + "optImgHash": 824190692 + }, + "/komodo-wallet/desktop/send-commands-to-mm2-instance": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-send-commands-to-mm2-instance.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-send-commands-to-mm2-instance-2093959094.jpg", + "optImgHash": 2093959094 + }, + "/komodo-wallet/desktop/simple-view-trading": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-simple-view-trading.jpg", + "dateModified": "2024-04-15T02:00:38.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-simple-view-trading-1741248994.jpg", + "optImgHash": 1741248994 + }, + "/komodo-wallet/desktop/use-seed-words-to-restore-the-address": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-use-seed-words-to-restore-the-address-2568075258.jpg", + "optImgHash": 2568075258 + }, + "/komodo-wallet/desktop/view-your-wallet-address": { + "origImgPath": "./preview-images-original/pre-komodo-wallet-desktop-view-your-wallet-address.jpg", + "dateModified": "2024-04-17T21:24:08.000Z", + "optImgPath": "public/preview-images/pre-komodo-wallet-desktop-view-your-wallet-address-3122708903.jpg", + "optImgHash": 3122708903 + }, + "/komodo-defi-framework/api/v20/my_recent_swaps": { + "origImgPath": "./preview-images-original/pre-komodo-defi-framework-api-v20-my_recent_swaps.jpg", + "dateModified": "2024-09-13T08:31:57.000Z", + "optImgPath": "public/preview-images/pre-komodo-defi-framework-api-v20-my_recent_swaps-705917205.jpg", + "optImgHash": 705917205 + } } \ No newline at end of file diff --git a/utils/_allMdxFileContentTree.json b/utils/_allMdxFileContentTree.json new file mode 100644 index 00000000..6ca8619e --- /dev/null +++ b/utils/_allMdxFileContentTree.json @@ -0,0 +1,251916 @@ +{ + "antara/api/assets": [ + { + "text": "Assets", + "tagName": "h1", + "path": "antara/api/assets", + "closestElementReference": "assets" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "The Assets Module provides basic distributed exchange (DEX) functionality for trading ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "tokens", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": " created using the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "Tokens", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": " module.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "Tokens", + "tagName": "a", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "The Asset Module allows anyone to buy or sell tokens using the Smart Chain's coins.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "introduction" + }, + { + "text": "Assets Module Flow", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "assets-module-flow" + }, + { + "text": "Seller's Perspective", + "tagName": "h5", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "A token owner places a new \"ask\" request with the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "tokenask", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": " method specifying the amount of tokens they want to sell and the price. The assets module then creates a new token ask order and the specified amount of tokens is locked in the module's global address", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "To fulfill the ask, a buyer executes the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "tokenfillask", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": " method. The purchased token amount moves from the global address to the buyer's token Antara Address. At the same time, the required amount of coins move from the buyer's address to the seller's address. This process can be repeated so long as tokens remain in the ask order", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "At any time, the creator of an order can cancel it via the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "tokencancelask", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": " method. The remaining tokens will return to their token Antara Address", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "sellers-perspective" + }, + { + "text": "Buyer's Perspective", + "tagName": "h5", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "A buyer places a new bid using the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "tokenbid", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": " method. The bid specifies the amount of tokens and the price. The Assets Module creates a new token bid order and the specified amount of coins is locked in the module's global address.", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "A willing seller executes the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "tokenfillbid", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": " method. The token amount sold moves from the seller's token Antara Address to the buyer's token Antara Address. At the same time, the locked coins move from the global address to the seller's address. This process can be repeated so long as tokens remain in the bid order", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "At any time, the creator of an order can cancel it via the ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "tokencancelbid", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": " method. The remaining coins will return to their token Antara Address", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "To retrieve a current list of all active orders, use the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "tokenorders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "mytokenorders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": " methods.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "buyers-perspective" + }, + { + "text": "assetsaddress", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "assetsaddress (pubkey)", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "assetsaddress", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": " method returns information about a asset address according to a specific ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": ". If no ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": " is provided, the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": " used to launch the daemon is the default.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "assetsaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------------------ | --------------------------------- |\n| pubkey | (string, optional) | the pubkey of the desired address |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| AssetsCCaddress | (string) | taking the token contract's EVAL code as a modifier, this is the public address that corresponds to the token contract's privkey |\n| AssetsNormalAddress | (string) | the unmodified public address generated from the token contract's privkey |\n| myCCaddress | (string) | taking the token contract's EVAL code as a modifier, this is the CC address from the pubkey of the user |\n| myaddress | (string) | the public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples" + }, + { + "text": "tokenask", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "tokenask numtokens tokenid price", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "tokenask", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": " method posts a public ask order.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/assets", + "closestElementReference": "tokenask" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-2" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ------------------------------------------------------------------------------ |\n| numtokens | (number) | the number of tokens to request in the order |\n| tokenid | (string) | the txid that identifies the token |\n| price | (number) | the price to pay for each token (units are in coins of the parent Smart Chain) |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-2" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "Step 1:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "Step 2: Use sendrawtransaction to broadcast the order", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-2" + }, + { + "text": "tokenbid", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "tokenbid numtokens tokenid price", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "tokenbid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": " method posts a public bid order.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "To fill the order, the parent chain's coin must be used.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "The method returns a raw hex, which must be broadcast using ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": " to complete the command.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": " method then returns a ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": ", which is the identification method of the bid order, and should be saved for future use.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenbid" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-3" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ------------------------------------------------------------------------------ |\n| numtokens | (number) | the number of tokens to request in the order |\n| tokenid | (string) | the txid that identifies the token |\n| price | (number) | the price to pay for each token (units are in coins of the parent Smart Chain) |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-3" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": " to publish order", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "The response is the transaction id.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-3" + }, + { + "text": "tokencancelask", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "tokencancelask tokenid asktxid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "tokencancelask", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": " method cancels a specific ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "ask", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "sell", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": " order that you created.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/assets", + "closestElementReference": "tokencancelask" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-4" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ------------------------------------------------- |\n| tokenid | (string) | the txid that identifies the token |\n| asktxid | (string) | the txid that identifies the original ask request |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-4" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Step 1: Issue the call and get your raw transaction HEX value", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Step 2: Broadcast using ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "The response is the transaction id.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Step 3 (optional): Decode the raw transaction (check if the values are sane)", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-4" + }, + { + "text": "tokencancelbid", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "tokencancelbid tokenid bidtxid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "tokencancelbid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": " method cancels a specific ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "bid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "buy", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": " order that you created.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/assets", + "closestElementReference": "tokencancelbid" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-5" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ------------------------------------------------- |\n| tokenid | (string) | the txid that identifies the token |\n| bidtxid | (string) | the txid that identifies the original bid request |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-5" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Step 1: Issue the call and get your raw transaction HEX value", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Step 2: Send raw transaction / broadcast the HEX value from above", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "The response is the transaction id.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Step 3: Decode the raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-5" + }, + { + "text": "tokenfillask", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "tokenfillask tokenid asktxid fillamount", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "tokenfillask", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": " method fills an existing ask.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "It returns a hex-encoded transaction which should then be broadcast using ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillask" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-6" + }, + { + "text": "| Structure | Type | Description |\n| ---------- | -------- | -------------------------------------- |\n| tokenid | (string) | the txid that identifies the token |\n| asktxid | (string) | the txid that identifies the ask order |\n| fillamount | (number) | the amount to fill |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-6" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "Step 1: Create the raw transaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "Step 2: Broadcast the hex using sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "The response is the transaction id.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "Step 3: Wait for the transaction to be confirmed", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-6" + }, + { + "text": "tokenfillbid", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "tokenfillbid tokenid bidtxid fillamount", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "tokenfillbid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": " method fills an existing ask.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "It returns a hex-encoded transaction which should then be broadcast using ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenfillbid" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-7" + }, + { + "text": "| Structure | Type | Description |\n| ---------- | -------- | -------------------------------------- |\n| tokenid | (string) | the txid that identifies the token |\n| bidtxid | (string) | the txid that identifies the bid order |\n| fillamount | (number) | the amount to fill |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-7" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "Step 1: Create raw transaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "Step 2: Broadcast the hex or sendrawtransaction", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "The response is the transaction id.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "Step 3: Wait for the transaction to be confirmed", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-7" + }, + { + "text": "tokenorders", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "tokenorders (tokenid)", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "tokenorders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " method displays the public on-chain orderbook for a specific token.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "Information about the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "funcid", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " property:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "A lowercase ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "b", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes an bid offer.", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "A lowercase ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "b", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes an bid offer.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "An uppercase ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "B", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes a bid fill.", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "An uppercase ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "B", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes a bid fill.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "A lowercase ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes an ask offer.", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "A lowercase ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes an ask offer.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "An uppercase ", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes the ask fill.", + "tagName": "li", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "An uppercase ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "S", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": " describes the ask fill.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "tokenorders" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "arguments-8" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------------------ | ------------------------------------- |\n| tokenid | (string, optional) | the identifying txid for the token id |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "| Structure | Type | Description |\n| ------------------- | -------------------------- | ------------------------------------------------------------------------------ |\n| funcid | (string) | describes either a bid ask ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "b", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": ", a bid fill ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "B", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": ", an ask ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": ", or an ask fill ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "S", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " |\n| txid | (string) | the txid of the identifying order or fill |\n| vout | (number) | the vout value |\n| amount | (number) | the amount remaining in the bid/ask request |\n| bidamount/askamount | (number) | the total amount of the relevant bid or ask request |\n| origaddress | (string) | the address that made the original bid ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "b", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " or ask ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " |\n| tokenid | (string) | the tokenid for the relevant bid/ask request/fill |\n| totalrequired | (number, ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "b", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " only) | the total amount available in the original big/ask request/fill |\n| price | (number, ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "b", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": " only) | the price per token, units are in the parent Smart Chain's coin |", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "Show all available orders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "Show orders for specific token", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "examples-8" + }, + { + "text": "mytokenorders", + "tagName": "h2", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "mytokenorders [evalcode]", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "mytokenorders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": " method displays the public on-chain orders created by the user's pubkey, which is set in ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": " parameter of komodod.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "The additional ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": " parameter allows the display of orders for non-fungible tokens bound to this evalcode.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "The response from this method is similar to the response from the ", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": "tokenorders", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/assets", + "closestElementReference": "mytokenorders" + } + ], + "antara/api/channels": [ + { + "text": "Channels", + "tagName": "h1", + "path": "antara/api/channels", + "closestElementReference": "channels" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "The Channels Antara Module facilitates instant payments in a trustless environment.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "When a payment is executed properly with ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "channels", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": ", as soon as it enters the mempool the odds that the payment can be withdrawn or attacked decrease to almost zero. Many developers and users may find the Channels Module to be an advantageous method for creating a secure instant-payment network that can be used within their business environment.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "It supports both coins and tokens.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "For testing Channels, build the Komodo daemon in test mode. Instead of using the command: ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "./zcutil/build.sh -j8", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": ", use", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "This will reduce the number of confirmations needed for ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "channelsopen", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "channelsclose", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": " transactions from ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": " for non-notarized chains.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "DO NOT use a daemon created with the above parameter for actual use.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "introduction" + }, + { + "text": "Channels Module Flow", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "Anyone can create a channel using ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsopen", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "When creating the channel, the user indicates the number and size of their potential payment(s), and what their destination is", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsopen", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "When creating the channel, the user indicates the number and size of their potential payment(s), and what their destination is", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "Once the channel is notarized, at any time in the future the user can execute ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelspayment", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " to release a specific amount of their available payments", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "As soon as the ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelspayment", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " result enters the mempool, the odds of withdrawing the ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " from processing decrease to almost zero", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelspayment", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "As soon as the ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelspayment", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " result enters the mempool, the odds of withdrawing the ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " from processing decrease to almost zero", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "The creator of a channel may close the channel at any time using ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsclose", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "This shows the receiver that this payment stream is permanently ended", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsclose", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "This shows the receiver that this payment stream is permanently ended", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "Once the channel's closure is notarized, the creator may withdraw remaining funds using ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsrefund", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsrefund", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsinfo", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": " method reveals public information for any or all available channels on an Smart Chain", + "tagName": "li", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsinfo", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channels-module-flow" + }, + { + "text": "channelsaddress", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "channelsaddress pubkey", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "channelsaddress", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": " method displays the various addresses and their balances for a specified pubkey.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "Under normal circumstances, for the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": " the user provides the destination address of the intended channel.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "The global addresses are not used in the Channels Antara module. For more information about unique Antara addresses, see ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "this linked explanation.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "this linked explanation.", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ---------------------- |\n| pubkey | (string, required) | the destination pubkey |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the method executed successfully |\n| ChannelsCCAddress | (string) | taking the contract's EVAL code as a modifier, this is the public address that corresponds to the contract's privkey |\n| CCbalance | (numeric) | the unspent amount in ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "ChannelsCCaddress", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " |\n| ChannelsNormalAddress | (string) | the unmodified normal public address generated from the contract's privkey; this is generally used for markers |\n| ChannelsCC1of2Address | (string) | the channel address that will store the funds once the channel is opened; this property is only active when the channel is using coins |\n| ChannelsCC1of2TokensAddress | (string) | the channel address that will store the funds once the channel is opened; this property is only active when the channel is using tokens |\n| myCCAddress(Channels) | (string) | taking the contract's EVAL code as a modifier, this is the Antara address from the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "used to launch the daemon", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " |\n| PubkeyCCaddress(Channels) | (string) | taking the contract's EVAL code as a modifier, this is the Antara address from the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " supplied as the argument |\n| myCCbalance | (numeric) | the balance of ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "myccaddress", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " in coins |\n| myaddress | (string) | the unmodified normal public address of the pubkey ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "used to launch the daemon", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " |\n| mybalance | (numeric) | the balance of ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "myaddress", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": " in coins |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "used to launch the daemon", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "used to launch the daemon", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples" + }, + { + "text": "channelsclose", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelsclose open_txid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelsclose", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " method marks a specific channel as closed, meaning that no additional payments will be added to the channel.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "The owner of the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channel", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " may still execute ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelspayment", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " for any remaining payments in the channel, until all payments are used or withdrawn.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelspayment", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " method then returns a ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " which is used in the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelsrefund", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": " method to reclaim funds.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "channelsrefund", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsclose" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | -------------------------------------------------------------------------- |\n| open_txid | (string) | the unique identifying txid that is created when a channel is first opened |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "Step 1: Close a channel", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "Output from Step 1", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "Step 2: Broadcast the raw transaction using sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-2" + }, + { + "text": "channelsinfo", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "channelsinfo (open_tx_id)", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "channelsinfo", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": " method fetches info about channels that are relevant to the user, either as sender or receiver.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "If no ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "open_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": " argument is included, the method returns a list of all channels available to this user.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | -------------------------------------------------------------------------- |\n| open_txid | (string, optional) | the unique identifying txid that is created when a channel is first opened |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------------- | ---------------- | --------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| Channel CC address | (string) | the 1of2 Channels CC address for the two pubkeys involved |\n| Destination address | (string) | the destination address of the Channel |\n| Number of payments | (number) | the total number of payments available at the time of Channel opening |\n| Denomination (satoshi) | (number) | the size of each payment (in satoshis) |\n| Amount (satoshi) | (number) | the total amount available to pay (in satoshis) |\n| Transactions | (array of jsons) | the transactions associated with the Channel |\n| Open | (string) | the id of the Channel opening transaction |\n| Payment | (string) | the id of a payment transaction |\n| Number of payments | (number) | the number of payments used up in the transaction |\n| Amount | (number) | the total amount paid in the transaction (in satoshis) |\n| Destination | (string) | the destination address of the Channel |\n| Secret | (string) | the secret revealed to pay the amount |\n| Payments left | (number) | the total number of payments left after the transaction |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "Command (after a Payment is done):", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "For the Tokens case:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-3" + }, + { + "text": "channelsopen", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "channelsopen destination_pubkey total_number_of_payments payment_size [tokenid]", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "channelsopen", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": " method opens a channel between two public keys (sender and receiver).", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "To open a channel that sends tokens, include the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": " of the required token.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": " method then returns a ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": " which is the unique identifying ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "channels_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsopen" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| --------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------ |\n| destination_pubkey | (string) | the public key of the intended recipient of the channel |\n| total_number_of_payments | (number) | the total number of payments to allocate in the channel |\n| payment_size | (number) | the amount per payment, given in satoshis; when tokenid is specified, the number of tokens per payment |\n| tokenid | (string, optional) | the id of the token |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Step 1: Create the raw hex", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Step 2: Broadcast the hex using ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "For the Tokens case:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Step 1: Create the raw hex", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "Step 2: Broadcast the hex using ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-4" + }, + { + "text": "channelspayment", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "channelspayment open_tx_id payment_amount (secret)", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "channelspayment", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " method sends a payment in a channel to the receiver.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "The method requires that the channel ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "open_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " has either one notarization or 100 confirmations.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "The owner of a channel reveals the password of a unique payment ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " as a part of the payment. This password is intentionally visible to anyone watching the chain at the time of payment, although the password does not persist in the database.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "If the receiver is monitoring the chain at the time of payment and saves the password, and there is a chain reorganization that nullifies the payment, the receiver now has the password to resend the payment. This option is available so long as the channel remains open and the payment has not been refunded.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " method then returns a ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": " which is the unique identifying ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "channels_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelspayment" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| open_tx_id | (string) | the transaction id of the channel open transaction |\n| payment_amount | (number) | the amount to release to the receiver pubkey in satoshis; the number of tokens to release in case of Token |\n| secret | (string, optional) | to be used by the receiver when a payment was issued previously but not mined; the secret must be extracted from the initial payment that has reached the mempool |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "Step 2: Broadcast using ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "Check that the transaction is confirmed:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-5" + }, + { + "text": "channelsrefund", + "tagName": "h2", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "channelsrefund open_tx_id close_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "channelsrefund", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": " method withdraws funds directly to the Antara address of the channel creator.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "The method can only be executed after the channel ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "close_tx_id", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": " has either one notarization or 100 confirmations.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/channels", + "closestElementReference": "channelsrefund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ----------------------------------------- |\n| open_tx_id | (string) | the id of the Channel opening transaction |\n| close_tx_id | (string) | the id of the Channel closing transaction |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/channels", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "Step 1: Command", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "Step 2: Broadcast the hex using ", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/channels", + "closestElementReference": "examples-6" + } + ], + "antara/api/custom": [ + { + "text": "Custom CC (WIP)", + "tagName": "h1", + "path": "antara/api/custom", + "closestElementReference": "custom-cc-wip" + }, + { + "text": "This document is a work in progress (WIP)", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "custom-cc-wip" + }, + { + "text": "We are fortunate to have been gifted the ability to launch provable ecosystems to build upon. This tutorial begins with a quick foundation of core concepts then moving into how to make software with layer-1, on-chain consensus. The smart-UTXO system of Komodo's Crypto-Conditions. Consensus & Smart Contract customizations.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "custom-cc-wip" + }, + { + "text": "Blockchain Core Concepts", + "tagName": "h2", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Public key cryptography is used when a private and public key pair are used for proving something.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Private Keys are stored in a wallet, not on the blockchain.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Private keys sign transactions.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Signatures on transaction are proven by the network using the corresponding public key to spend the claimed ownership of funds.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Transactions fill blocks, like an item on a shopping list fills a piece of paper.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Blocks are arranged in sequential order, forming a chain.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Each block contains agreed transactional information. The proof of the transactional detail and it's arrangement in the block is called consensus. Consensus is achieved by each participant relying on their own computation.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Coins & Tokens are used in transaction details to transfer value.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Nodes is the jargon term for computers that do the computations to maintain the network.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Maintaining the network is done by validating. OP_CODES are the instructions of the network that need validating.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Some nodes are heavily computational (miners), some are quiet and store a valuable private key within the wallet.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "There's additional software to make this blockchain useful (for transfering value) & easier to use. Like the internet became useful for transfering information, blockchain technology enables software to create new ways of collaborating. Blockchain: Mobile Wallets, DEX, Explorers vs WWW: webserver, database, email & streaming protocols)", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "blockchain-core-concepts" + }, + { + "text": "Goal of our Antara Module", + "tagName": "h2", + "path": "antara/api/custom", + "closestElementReference": "goal-of-our-antara-module" + }, + { + "text": "This ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "goal-of-our-antara-module" + }, + { + "text": "customcc", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "goal-of-our-antara-module" + }, + { + "text": " loadable library example is simply something that requires to send 1 coin. It can't get much simpler.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "goal-of-our-antara-module" + }, + { + "text": "Use jl777 branch", + "tagName": "h2", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "Open the 3 files", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "customcc.h ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "customcc.cpp ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "makecustom ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "src", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "These are the three files we'll work on for learning how to apply custom consensus to a blockchain. For most 1st & 2nd generation blockchain projects, changing consensus is a bold undertaking. Komodo has turned it into a loadable module removing the risk of severe bugs - no other project offers this to a custom blockchain.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "These 3 files are not boilercode. It may look like boilercode but it's the gateway to much more powerful stuff. This is the pandoras box of dApps. Get ready to understand how to develop on a secure multi-chain distrbuted transactional system.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "use-jl777-branch" + }, + { + "text": "customcc.h header file - definitions of functions and variables", + "tagName": "h2", + "path": "antara/api/custom", + "closestElementReference": "customcc-h-header-file-definitions-of-functions-and-variables" + }, + { + "text": "From the top, the comments provide a nice summary of what our custom cclib will do.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "customcc-h-header-file-definitions-of-functions-and-variables" + }, + { + "text": "Name of our custom cclib", + "tagName": "h3", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "One is referenced externally (", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "MYCCLIBNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": ") at komodo start. The other internally (", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": ") when programming for function name prefixes.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "MYCCLIBNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": " This is the name of the loadable library module being created. Here it is \"customcc\". This is what is used on the command line to load your custom consensus when ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "starting your custom blockchain", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "starting your custom blockchain", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": " is the prefix for RPC calls and standard consensus functions (e.g. ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "validate", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": ").\nThe naming convention used for building a custom consensus library follows:", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "MYCCNAME_FUNCTIONNAME", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "For example ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "custom_validate", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "name-of-our-custom-cclib" + }, + { + "text": "Declaration of constants", + "tagName": "h3", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL_FAUCET2", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " is a constant (footnote: 1a & 1b) (", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "0x10", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " or decimal 16). These ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL_...", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " constants are identifiers. They are used to route the validation code. The low-level bitcoin script in Komodo has a new op*code called ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": ". When any node on the network needs to validate this ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " op_code, it looks up which ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL*...", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " code it is.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "Custom consensus starts at ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL_FAUCET2", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " and add ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "+1", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " to it for your customcc library. Therefore, ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL_CUSTOM", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "0x11", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " = decimal 17.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "CUSTOM_TXFEE", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " is the default transaction fee for this type of transaction. The default txfee for this ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "EVAL_...", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " code consensus is ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": " assetoshis (0.0001).", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-constants" + }, + { + "text": "Declarations of the RPC calls", + "tagName": "h3", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "This is the way 3rd party developers (e.g. front-end developers) and command-line users will interact with your custom crypto condition. For example commands like ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "komodo-cli -ac_name=CUSTOM custom_func0", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "komodo-cli -ac_name=CUSTOM custom_func1", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "The declarations for the functions in customcc.cpp - func0 and func1", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "MYCCNAME", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " is declared previously as \"custom\"", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "func0", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " is the name of the first RPC call", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " can be replaced with your functions help text.", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "1,1,'0', EVAL_CUSTOM", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " means: 1 mandatory parameter, maximum of 1 parameter, 0 is the function id for custom consensus ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "EVAL_CUSTOM", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": ", in this case ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "0x11", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " (decimal 17)", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "func1", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " is the name of the next RPC call", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " is the real help text this time. This RPC call ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "func1", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " requires no arguments, like ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "komodo-cli getinfo", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "0,0,'1', EVAL_CUSTOM", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " mean: 0 mandatory parameters, maximum of 0 parameters, 1 is the function id for custom consensus ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "EVAL_CUSTOM", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": ", in this case ", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "0x11", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": " (decimal 17)", + "tagName": "li", + "path": "antara/api/custom", + "closestElementReference": "declarations-of-the-rpc-calls" + }, + { + "text": "Declaration of functions", + "tagName": "h3", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "These functions follow the naming convention of ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " with a ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "_", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ". Validation is always required and named ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " + ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "_validate", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ". MYCCNAME is ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "custom", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ", therefore the validate function is called ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "custom_validate", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ". If MYCCNAME was defined as ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "mylo", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ", then my validate function would be called ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "mylo_validate", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": ". Odds are you will name your first cclib after yourself or someone else just as loveable.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "The validation code is the most important code - it is what makes blockchains sources of truth. Their truthiness relies on validation based on cryptographic principles.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "Functions ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "custom_func0", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "custom_func1", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " follow the internal automatic module wiring of cclib. Again ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " + ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "_", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " + ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "RPCFUNCS", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": " declared earlier.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "declaration-of-functions" + }, + { + "text": "Automatic wiring, custom RPC function dispatcher", + "tagName": "h3", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "The following code is part of the automatic wiring that allows a developer to use 3 files, the ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": ".h", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": " the ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": ".cpp", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": " and the ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "makecustom", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": " makefile. Automatic wiring saves a developer from potentially introducing bugs in the consensus and by virtue of this saving, testers, users and organizations many hours of resources.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "The custom dispatch is used for dispatching the RPC function declared earlier.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "The developer must then map the RPC names to the function/method. This mapping follows the same naming convention that has already been defined. Namely, ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "MYCCNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": " + ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "_", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": " + ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "FUNCTIONNAME", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": ". If no match, then an error message returned and no harm done.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "e.g.", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "Finally, in the course of looking where to route the RPC request", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "automatic-wiring-custom-rpc-function-dispatcher" + }, + { + "text": "customcc.cpp file - implementation of functions", + "tagName": "h2", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "Ref: ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "^1a", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "^1a", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "Ref: ", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "^1b", + "tagName": "p", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + }, + { + "text": "^1b", + "tagName": "a", + "path": "antara/api/custom", + "closestElementReference": "customcc-cpp-file-implementation-of-functions" + } + ], + "antara/api/dice": [ + { + "text": "Dice", + "tagName": "h1", + "path": "antara/api/dice", + "closestElementReference": "dice" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "The Dice Antara Module allows for a decentralized ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": " game on a blockchain. The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": " module is essentially a simple, but fully functional example of decentralized software.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "It is also useful as a demonstration to show how Antara-based modules can leverage provably random entropy to enable blockchain-enforced real-time gameplay.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "The Dice Module is a simple gambling game, where one node creates a \"house\" contract, with seed funds and other parameters, and other users place bets within the indicated parameters. Winners and losers are determined through blockchain technology. This technology includes on-chain, consensus based, provably random entropy that derives from the activity of both the \"house\" and the users.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "The \"house\" node should be running the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicestatus", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": " method at a regular frequency. This method resolves unfinished bets and generates new entropy utxos for the \"house\" contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicestatus", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "To create a \"house\" contract, use ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicefund", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": " to initiate the contract, and then add several utxos to the fund with ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "diceaddfunds.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicefund", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "diceaddfunds.", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "Once the contract is created and funded, users can place a bet using ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicebet.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicebet.", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "Anyone can execute a ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicefinish", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": " RPC after the contract's time expires. This prevents the \"house\" node from cheating by going offline.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "dicefinish", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "introduction" + }, + { + "text": "diceaddfunds", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "diceaddfunds name fundingtxid amount", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "diceaddfunds", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": " method adds funds to the desired ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": " contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "Only the owner of the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": " contract is able to add funds.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "diceaddfunds" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | --------------------------------------------------------------------- |\n| name | (string) | the name of the user's dice contract |\n| fundingtxid | (string) | the txid of the transaction that created and funded this contract |\n| amount | (number) | the amount of funds you want to add to your contract from your wallet |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Step 1: Create a raw transaction hex value for adding funds", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Step 2: Send the raw transaction / broadcast the hex value", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Step 3: Decode the raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples" + }, + { + "text": "diceaddress", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": "diceaddress (pubkey)", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": "diceaddress", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": " method takes either your pubkey or a pubkey that you provide and returns the smart-contract address for the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": " smart contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | -------------------------------------------------------------------------------------- |\n| pubkey | (string, optional) | the pubkey of the requested info; by default it is the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| result | (string) | whether the diceaddress method was successful |\n| DiceCCaddress | (string) | taking the dice contract's EVAL code as a modifier, this is the public address that corresponds to the dice contract's privkey |\n| Dicemarker | (string) | the unmodified public address generated from the dice contract's privkey |\n| DiceCCassets | (string) | the internal address; this value is not related to the usage of the Dice Antara module |\n| GatewaysPubkey | (string) | the global pubkey for this Gateways Antara module |\n| myCCaddress | (string) | taking the dice contract's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| myaddress | (string) | the public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "For the non-default pubkey.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-2" + }, + { + "text": "dicebet", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "dicebet name fundingtxid amount odds", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "dicebet", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": " method places a bet on the indicated ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": " contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "dicebet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------------------- |\n| name | (string) | the name of the dice contract for which the user desires to place a bet |\n| fundingtxid | (string) | the txid of the transaction that created and funded this contract |\n| amount | (number) | the amount the user desires to place as a bet |\n| odds | (number) | specify the user's odds |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the dicebet command executed successfully |\n| \"hex\" | (string) | the data of the user's transaction, in a raw hex-encoded format; broadcast this using ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-3" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-3" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Step 1: Set your parameters to create a raw transaction and get the hex value", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Step 2: Send/broadcast the raw transaction hex", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-3" + }, + { + "text": "dicefinish", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "dicefinish name fundingtxid bettxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "dicefinish", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " method rebroadcasts a bet that was previously broadcast.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "If the returned ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " the bet is finished.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "If the returned ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " value is not ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": ", the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " value should be broadcast with ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "sendrawtransaction.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " If the bet has not finished or is stuck, the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": " will have a value.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "sendrawtransaction.", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "dicefinish" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| name | (string) | the name of the dice contract |\n| fundingtxid | (string) | the txid of the transaction that created and funded this contract |\n| bettxid | (string) | the txid of the bet for which finish status is requested |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| result | (string) | whether the command executed successfully |\n| hex | (string) | if the contract is already finished, the resulting hex is 0; if the contract is not finished, the value of hex will be a rawtransaction that the user can broadcast to let the blockchain automatically declare a winner and close the bet |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-4" + }, + { + "text": "dicefund", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "dicefund name funds minbet maxbet maxodds timeoutblocks", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "dicefund", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " method creates and funds a dice contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "Ideally, the dice creator node should be online throughout the contract's life, to determine ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "winning bid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "losing bid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "If the dice creator node is offline after the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "timeoutblocks", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " period completes, the system will automatically declare the bet's winner and payout winning funds.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "Typically, the creator should set the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "timeoutblocks", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " property to a longer period. This prevents the house from losing funds if the house's node unexpectedly experiences downtime.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "maxodds", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": " property must be between 1 and 9999.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicefund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | --------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the user's dice contract |\n| funds | (number) | the amount of funds with which the user desires to start |\n| minbet | (number) | the minimum amount allowed for a bet |\n| maxbet | (number) | the maximum amount allowed for a bet |\n| maxodds | (number) | the largest odds an end-user can use for betting |\n| timeoutblocks | (number) | the number of blocks before the contract times out and pays the automatically declared winner |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | --------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| hex | (string) | the data of the transaction in raw hex-encoded format; broadcast this using the sendrawtransaction method |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Step 1: Create your customized Dice contract and get the hex value", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Step 2: Send raw transaction / Broadcast the hex value", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-5" + }, + { + "text": "diceinfo", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "diceinfo fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "diceinfo", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": " method looks up information about the specific ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": " contract referred by the relevant ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "A ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": " is the txid of the transaction that created and funded the relevant contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "dicelist", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": " method to discover a list of available ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": " hashes on the Smart Chain.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "dicelist", + "tagName": "a", + "path": "antara/api/dice", + "closestElementReference": "diceinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| fundingtxid | (string) | the txid of the transaction that created and funded this contract |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | --------------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"fundingtxid\" | (string) | the txid of the transaction that created and funded this contract |\n| \"name\" | (string) | the name of the dice contract |\n| \"sbits\" | (number) | a 64-bit int binary encoding of the first 8 characters of the name property |\n| \"minbet\" | (number) | the minimum bet amount this contract accepts |\n| \"maxbet\" | (number) | the maximum bet amount this contract accepts |\n| \"maxodds\" | (number) | the maximum odds the contract accepts |\n| \"timeoutblocks\" | (number) | the number of blocks before the contract allows an automatically declared winner and the bet closes |\n| \"funding\" | (number) | the current amount of funds in the contract |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-6" + }, + { + "text": "dicelist", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "dicelist", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "dicelist", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": " method displays the total list of ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "'s of all ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "dice", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": " contracts available on the Smart Chain.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "A ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": " is the txid of the transaction that created and funded the relevant contract.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicelist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------- |\n| fundingtxid | (string) | the txid of the transaction that created and funded the relevant contract |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-7" + }, + { + "text": "dicestatus", + "tagName": "h2", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "dicestatus name fundingtxid bettxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "dicestatus", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": " method prints the status of a ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "dicebet", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": " and returns whether the ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": " received a winning or losing result.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "dicestatus" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------------- |\n| name | (string) | the name of the dice contract |\n| fundingtxid | (string) | the txid of the transaction that created and funded this contract |\n| bettxid | (string) | the bettxid, the result of which is desired |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/dice", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| status | (string) | the result of the bet for the relevant bettxid |", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/dice", + "closestElementReference": "examples-8" + } + ], + "antara/api/dilithium": [ + { + "text": "Dilithium", + "tagName": "h1", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "The Dilithium Antara Module facilitates quantum-resistant transactions on a Komodo Smart Chain. The module also allows users to create unique, human-readable handles. These handles can be thought of as an address.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "For example, a normal blockchain address may appear as follows.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "A Dilithium-based address, however, may appear much simpler, as follows.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "The handle acts much like an address, allowing only the owner of the associated private key to release funds.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "Users who are familiar with a Smart Chain's method of facilitating privacy transactions can associate the same underlying concepts with Dilithium. A Komodo Smart Chain's privacy transactions are facilitated by ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "the pre-installed Zcash parameters.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "the pre-installed Zcash parameters.", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "These parameters allow for more than one protocol to influence the outcome of a transaction. In the case of a Zcash-related privacy transaction, the transaction has both the underlying Bitcoin-based ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "utxo", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": " protocol influencing the transaction, and the Zcash parameters. The latter is what grants the transaction privacy.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "utxo", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "Similarly, a Dilithium-related transaction on a Smart Chain is influenced by both the Bitcoin-based utxo protocol, and the Dilithium protocol. Dilithium's added functionality is quantum resistance, whereas Zcash's added functionality is privacy.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "Dilithium has \"q addresses\" (handles) and \"q transactions.\"", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "Once again, this can be compared to the familiar \"z addresses\" and \"z transactions\" of a Zcash-related transaction on a Komodo Smart Chain.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "introduction" + }, + { + "text": "Dilithium Module Flow", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "Register a handle using the ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "keypair", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "register", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " methods", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "keypair", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "register", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "To transfer funds from a ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " address into a ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "q", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " address, use the ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "send", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "To transfer funds from a ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "q", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " address to another ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "q", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " address, use the ", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "qsend", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "qsend", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "dilithium-module-flow" + }, + { + "text": "Tutorial Availability", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "tutorial-availability" + }, + { + "text": "The Dilithium Antara Module has an associated tutorial. This tutorial provides instructions on installation and usage.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Dilithium Module Tutorial", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Dilithium Module Tutorial", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "tutorial-availability" + }, + { + "text": "handleinfo", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "cclib handleinfo 19 '[\"handle\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": " method displays information associated with the supplied ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "Use this method to determine if any given ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": " is available for the user to claim.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "handleinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------- |\n| handle | (string) | the handle the user desires to inspect |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response" + }, + { + "text": "When a handle is available", + "tagName": "h5", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-available" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------- |\n| result | (string) | whether the call executed successfully |\n| handle | (string) | the handle the user desires to inspect |\n| status | (string) | whether the handle is available |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-available" + }, + { + "text": "When a handle is already registered by the node executing the command", + "tagName": "h5", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-already-registered-by-the-node-executing-the-command" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------- |\n| result | (string) | whether the call executed successfully |\n| handle | (string) | the handle |\n| destpubtxid | (string) | the transaction id generated when the handle was registered |\n| pkaddr | (string) | the hashed representation of the Dilithium pubkey |\n| pubkey | (string) | the pubkey of the node that registered the handle |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-already-registered-by-the-node-executing-the-command" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples" + }, + { + "text": "When a handle is available", + "tagName": "h5", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-available-2" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-2" + }, + { + "text": "When a handle is already registered by the node executing the command", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "when-a-handle-is-already-registered-by-the-node-executing-the-command-2" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-3" + }, + { + "text": "keypair", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "cclib keypair 19 '[\"hexseed\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "keypair", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": " method generates a Dilithium ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "privkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": ". This method requires a 256 bit seed in hex format (64 characters).", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "If no ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "hexseed", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": " is provided, the module uses the user's pubkey seed for entropy and generates a new seed. From this new seed the module produces a Dilithium ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "privkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "keypair" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------------------------------------ |\n| hexseed | (string) | a random hex to provide entropy for calculating the key pair |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| status | (string) | the quality of the seed used |\n| seed | (string) | either the seed provided by the user or (if no seed was provided of the provided seed does not satisfy the requirements) this value is a randomly generated seed |\n| pubkey | (string) | the Dilithium pubkey generated |\n| privkey | (string) | the Dilithium private key generated |\n| pkaddr | (string) | the hashed representation of the Dilithium pubkey |\n| skaddr | (string) | the hashed representation of the Dilithium privkey |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-5" + }, + { + "text": "Qsend", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "cclib Qsend 19 '[\"mypubtxid\", \"hexseed/'mypriv'\", \"destpubtxid1\", amount1, \"destpubtxid2\", amount2, ... ]", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "Qsend", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": " method sends coins from the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": " on the node to any number of other ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "handles", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": ", as refered by their ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "pubtxids", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": ". This transaction uses Dilithium signing and is quantum resistant.\nMultiple pairs of ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "\"destpubtxid\",amount", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": " can be appended to the array to specify multiple recipients.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "qsend" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | -------- | ------------------------------------------------------------------ |\n| mypubtxid | (string) | the id of the handle-registration transaction of the sender |\n| hexseed/'mypriv' | (string) | the seed used to register the handle |\n| destpubtxid | (string) | the the id of the handle-registration transaction of the recepient |\n| amount | (number) | the amount of coins to send to the referred handle |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------------------------------- |\n| hex | (string) | the hex to broadcast; use the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-6" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-6" + }, + { + "text": " method |\n| txid | (string) | the transaction id generated when the hex is broadcast |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-7" + }, + { + "text": "Broadcast the hex", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "broadcast-the-hex" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-8" + }, + { + "text": "register", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "cclib register 19 '[\"handle\", \"hexseed\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": " method allows a user to register an arbitrary ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": " (such as an online anonymous username) to the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": " the user used to launch the Smart Chain.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "This method requires a valid ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": ", as provided from the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "keypair", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "keypair", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "register" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | --------------------------------------------- |\n| handle | (string) | the desired handle |\n| hexseed | (string) | the seed used to create the Dilithium keypair |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------------------------- |\n| handle | (string) | the handle registered |\n| pkaddr | (string) | the hashed representation of the Dilithium pubkey |\n| skaddr | (string) | the hashed representation of the Dilithium privkey |\n| hex | (string) | the hex that should be broadcast to register the handle |\n| txid | (string) | the transaction id generated when the hex is broadcasted |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-4" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-5" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-10" + }, + { + "text": "Broadcast the hex", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "broadcast-the-hex-2" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-11" + }, + { + "text": "send", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "cclib send 19 '[\"handle\", \"pubtxid\", amount]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": " method sends the specified amount of coins to a ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": " associated with the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "pubtxid", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "send" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | --------------------------------------------- |\n| handle | (string) | the recipient's handle |\n| pubtxid | (string) | the id of the handle-registration transaction |\n| amount | (number) | the amount of coins to send |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------ |\n| handle | (string) | the recipient's handle |\n| hex | (string) | the transaction hex; broadcast this using the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-12" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-12" + }, + { + "text": " method |\n| txid | (string) | the transaction id generated when the hex is broadcast |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-5" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-6" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-13" + }, + { + "text": "Broadcast the hex", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "broadcast-the-hex-3" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-14" + }, + { + "text": "sign", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "cclib sign 19 '[\"msg\", \"hexseed\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "sign", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": " method signs a given 32 byte ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": " (message) in hex format using the supplied Dilithium ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "hexseed", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "sign" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------ |\n| msg | (string) | the 32 byte hexmessage to sign |\n| hexseed | (string) | the seed to sign the message |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-15" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | -------------------------------------------------- |\n| msg32 | (string) | the signed message |\n| pkaddr | (string) | the hashed representation of the Dilithium pubkey |\n| skaddr | (string) | the hashed representation of the Dilithium privkey |\n| signature | (string) | the signature generated |\n| sighash | (string) | the hash of the signature |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-15" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-6" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-16" + }, + { + "text": "spend", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "cclib spend 19 '[\"sendtxid\", \"scriptPubKey\", \"hexseed\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": " method spends the coins recieved in the transaction of id ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": " to a ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": " using the supplied seed.", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "scriptPubkey", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "spend" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------- |\n| sendtxid | (string) | the id of the transaction that sent coins to the handle associated with the seed supplied |\n| scriptPubKey | (string) | the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-7" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-7" + }, + { + "text": " to which the coins are to be spent |\n| hexseed | (string) | the seed used to register the handle which holds the funds |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-7" + }, + { + "text": "scriptPubkey", + "tagName": "a", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-17" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------------------------------- |\n| hex | (string) | the hex to broadcast; use the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-17" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-17" + }, + { + "text": " method |\n| txid | (string) | the transaction id generated when the hex is broadcast |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-17" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-7" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-8" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-18" + }, + { + "text": "Broadcast the hex", + "tagName": "h5", + "path": "antara/api/dilithium", + "closestElementReference": "broadcast-the-hex-4" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-19" + }, + { + "text": "verify", + "tagName": "h2", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "cclib verify 19 '[\"pubtxid\", \"msg\", \"sig\"]'", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "verify", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": " method verifies whether the supplied signature was generated for the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": " (message) by the seed corresponding to the ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "pubtxid", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "The returned ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": " is directly associated with the same ", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "pubtxid", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "verify" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | --------------------------------------------- |\n| pubtxid | (string) | the id of the handle-registration transaction |\n| msg | (string) | the signed message |\n| sig | (string) | the signature generated |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "response-20" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | --------------------------------------------------------------------------- |\n| sighash | (string) | the hash of the signature |\n| msg32 | (string) | the signed message |\n| handle | (string) | the handle that was registered with the seed used to sign the message |\n| pkaddr | (string) | the hashed representation of the Dilithium pubkey corresponding to the seed |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/dilithium", + "closestElementReference": "response-20" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/dilithium", + "closestElementReference": "examples-8" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "command-9" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/dilithium", + "closestElementReference": "response-21" + } + ], + "antara/api/faucet": [ + { + "text": "Faucet", + "tagName": "h1", + "path": "antara/api/faucet", + "closestElementReference": "faucet" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "The Faucet Antara Module enables anyone to fund an on-chain faucet on any chain where modules are ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "enabled.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": " A Smart Chain may have only one on-chain ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucet", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "enabled.", + "tagName": "a", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "To receive funds from a ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucet", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": ", the ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": " method can be executed by anyone on the Smart Chain, as long as their public address satisfies a few constraints. Their daemon's pubkey (corresponding to the address) must have no history of funds or transactions, and an address can claim faucet funds only once on a chain. The call also requires the node to perform a small PoW calculation; this deters leeching.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucetget", + "tagName": "a", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "When ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": " is executed, the on-chain ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucet", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": " sends 0.1 coins to the address that corresponds to the node's pubkey. This requires about 30 seconds of CPU time.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "introduction" + }, + { + "text": "faucetaddress", + "tagName": "h2", + "path": "antara/api/faucet", + "closestElementReference": "faucetaddress" + }, + { + "text": "faucetaddress [pubkey]", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetaddress" + }, + { + "text": "faucetaddress", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetaddress" + }, + { + "text": " method returns the Antara address information for the specified pubkey. If no pubkey is provided, the method returns information for the pubkey used to launch the daemon.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ------------------------------------------------------------------------------------------------- |\n| pubkey | (string, optional) | the desired pubkey; the method uses the pubkey used to launch the daemon if no pubkey is provided |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| FaucetCCaddress | (string) | taking the faucet module's ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": " code as a modifier, this is the public address that corresponds to the faucet module's privkey |\n| Faucetmarker | (string) | the internal address (not related to usage of faucet) |\n| FaucetCCassets | (string) | the internal address (not related to usage of faucet) |\n| GatewaysPubkey | (string) | the global pubkey for this Gateways module |\n| CCaddress | (string) | taking the faucet module's ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": " code as a modifier, this is the Antara address from the pubkey of the user |\n| myCCaddress | (string) | taking the faucet module's ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": " code as a modifier, this is the Antara address from the pubkey of the user |\n| myaddress | (string) | the unmodified public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples" + }, + { + "text": "faucetfund", + "tagName": "h2", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "faucetfund amount", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": " method funds the on-chain faucet.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/faucet", + "closestElementReference": "faucetfund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------- |\n| amount | (number) | the amount to add to the faucet, taken from the user's available funds |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| hex | (string) | the data in hex-encoded format; you must broadcast this hex using the", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response-2" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response-2" + }, + { + "text": " RPC for the command to complete |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Step 1: Specify faucet amount and get the raw transaction HEX value", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Step 2: Broadcast/send raw transaction", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-2" + }, + { + "text": "faucetget", + "tagName": "h2", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": " method requests the ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "faucet", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": " module to send coins.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": " command yields 0.1 coins and requires about 30 seconds of CPU time to execute.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetget" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| hex | (string) | the data in hex-encoded format; you must broadcast this hex using sendrawtransaction for the command to complete |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Step 1: Use faucetget and get the raw HEX value", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Step 2: Broadcast/send the raw transaction", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Step 3: Decode the raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-3" + }, + { + "text": "faucetinfo", + "tagName": "h2", + "path": "antara/api/faucet", + "closestElementReference": "faucetinfo" + }, + { + "text": "faucetinfo", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetinfo" + }, + { + "text": "faucetinfo", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetinfo" + }, + { + "text": " method displays the balance of funds in the chain's faucet.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "faucetinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/faucet", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | the name of the faucet module |\n| funding | (number) | the amount of funds available in the faucet |", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/faucet", + "closestElementReference": "examples-4" + } + ], + "antara/api/gaming": [ + { + "text": "Gaming", + "tagName": "h1", + "path": "antara/api/gaming", + "closestElementReference": "gaming" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "introduction" + }, + { + "text": "Welcome to the Antara Gaming SDK documentation. This module-based software is programmed in C++ 17 and is designed for high-speed runtime execution.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "introduction" + }, + { + "text": "The modules of the Antara Gaming SDK rely on other modules, such as ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "introduction" + }, + { + "text": "Oracles", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "introduction" + }, + { + "text": "Oracles", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "introduction" + }, + { + "text": "config", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "config" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "config" + }, + { + "text": "antara::gaming::config", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "config" + }, + { + "text": " class provides a function to load customized configuration settings for the Antara Gaming SDK.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "config" + }, + { + "text": "load_configuration", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "load-configuration" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "load_configuration", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": " function loads customizable configuration settings from a path and filename.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "If the parameter path does not exist the function attempts to create the directories of the given path", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "If the configuration does not exist, the function creates a default configuration", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "If the path and the name of the file exists, the function loads the configuration contents", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern" + }, + { + "text": "Template Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-parameters" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------- |\n| TConfig | typename | the type of template to load |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-parameters" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters" + }, + { + "text": "| Name | Type | Description |\n| ------------ | --------------------- | -------------------------------------------------------------------- |\n| config_path | std::filesystem::path | the path to the directory in which the configuration file is located |\n| filename | std::string | the name of the configuration file |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------ |\n| TConfig | template | the template |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example" + }, + { + "text": "core", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "core" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "core" + }, + { + "text": "antara::gaming::core", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "core" + }, + { + "text": " class provides functions and information relevant to\nthe core Antara Gaming SDK library.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "core" + }, + { + "text": "version", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "version" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-2" + }, + { + "text": "version", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-2" + }, + { + "text": " function returns the current version of the Antara Gaming SDK.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-2" + }, + { + "text": "The result of this function can be deduced at compile time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-2" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-2" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------- | -------------------------------------------- |\n| current version | const char * | the current version of the Antara Gaming SDK |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-2" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-2" + }, + { + "text": "ecs::system_manager", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "ecs-system-manager" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "ecs-system-manager" + }, + { + "text": "antara::gaming::ecs::system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "ecs-system-manager" + }, + { + "text": " class provides methods to perform tasks such as the manipulation of systems, the addition, deletion, and update of systems, and the deactivation of a system.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "ecs-system-manager" + }, + { + "text": "system_manager", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "system-manager" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-3" + }, + { + "text": "The primary constructor function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-3" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-3" + }, + { + "text": "Destructor", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "destructor" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-3" + }, + { + "text": "| Name | Type | Description |\n| ------------------------------- | -------------- | ------------------------------------------------------ |\n| registry | entt::registry | an entity_registry object |\n| subscribe_to_internal_events | bool | whether to subscribe to default system_manager events |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | void | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-3" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-3" + }, + { + "text": "receive_add_base_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "receive-add-base-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-4" + }, + { + "text": "Public member functions.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-4" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-4" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-4" + }, + { + "text": "| Name | Type | Description |\n| ---- | ------------------------------ | ------------------------------- |\n| evt | ecs::event::add_base_system& | ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-4" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | void | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-4" + }, + { + "text": "start", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "start" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-5" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-5" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-5" + }, + { + "text": " function informs the system manager instance that the developer's game is initiated and spinning.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-5" + }, + { + "text": "This function allows for the execution of actions at the end of each frame. For example, an action could be the deletion of a sytem, or the addition of a new system which will continue to receive iterations and updates.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-5" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-5" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | void | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-5" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-4" + }, + { + "text": "update", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "update" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "update", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": " function updates a system-manager instance.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "The logic of the function is designed to automatically manage the correct order of updates for the different types of systems the developer has added to their system-manager instance.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "If the developer's logic has not loaded any systems into the system_manager instance the function returns ", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "0", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "If the developer's logic marks a system for deletion, the function deletes the system is automatically at the end of the current loop tick", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "If the developer's logic adds a system through an ", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "ecs::event::add_base_system", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": " event, the function automatically adds the system at the end of the current loop tick", + "tagName": "li", + "path": "antara/api/gaming", + "closestElementReference": "public-function-6" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-6" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------------------------- | ------------ | ----------------------------- |\n| number of systems updated | std::size_t | the number of systems updated |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-6" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-5" + }, + { + "text": "update_systems", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "update-systems" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": " function updates specific systems in a system_manager instance.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": " (listed above) function calls this ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": " function multiple times each time the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": " function executes.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "update_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": " function is useful when the developer wishes to manually perform an update of a specific system.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-7" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-7" + }, + { + "text": "Function Parameters", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ------------------------- | ------------ | ----------------------------- |\n| number of systems updated | std::size_t | the number of systems updated |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-7" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-6" + }, + { + "text": "get_system | 1", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "get-system-1" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-8" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-8" + }, + { + "text": "get_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-8" + }, + { + "text": " function uses a template parameter to return a reference to a system.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-8" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-8" + }, + { + "text": "Function and Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type" + }, + { + "text": "| Name | Type | Description |\n| ------- | ----------------------------- | ------------------------------------------------------------------------------------ |\n| TSystem | (determined by the developer) | the TSystem type represents any type of valid template, as designed by the developer |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | --------------------------------------------------- |\n| TSystem | &TSystem | a reference to the template chosen by the developer |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-8" + }, + { + "text": "get_system | 2", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "get-system-2" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-9" + }, + { + "text": "An overloaded version of the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-9" + }, + { + "text": "get_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-9" + }, + { + "text": " function above.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-9" + }, + { + "text": "This overloaded function accepts different parameters.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-9" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-9" + }, + { + "text": "Function and Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-2" + }, + { + "text": "| Name | Type | Description |\n| ------- | ----------------------------- | ------------------------------------------------------------------------------------ |\n| TSystem | (determined by the developer) | the TSystem type represents any type of valid template, as designed by the developer |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | --------------------------------------------------- |\n| TSystem | &TSystem | a reference to the template chosen by the developer |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-9" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-7" + }, + { + "text": "get_systems | 1", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "get-systems-1" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "get_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": " function accepts multiple template parameters and returns multiple systems.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "get_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": " function. Based on the logic of the different kinds of systems requested, this function updates the indicated systems in the correct order.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "get_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-10" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-10" + }, + { + "text": "Function and Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | ----------------------------------------------------- | ---------------------------------------------- |\n| TSystem | std::tuple | a tuple containing multiple TSystems templates |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | ----------------------------------------------------- | --------------------------------------------------- |\n| TSystems | std::tuple | a reference to the template chosen by the developer |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-10" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-8" + }, + { + "text": "get_systems | 2", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "get-systems-2" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "An overloaded version of the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "get_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "get_systems", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "This function is marked as ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "nodiscard.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "nodiscard.", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-11" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-11" + }, + { + "text": "Function and Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------- |\n| tuple of TSystems | std::tuple>...> | a tuple containing multiple TSystems templates types |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-and-template-type-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------ |\n| tuple of TSystems | std::tuple>...> | a tuple containing multiple references to TSystems templates |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-11" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-9" + }, + { + "text": "has_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "has-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": "has_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": " function verifies whether or not a system is already registered in the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": "system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": "system_manager", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-12" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-12" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type" + }, + { + "text": "| Name | Type | Description |\n| ------- | ----------------------------- | ------------------------------------ |\n| TSystem | (determined by the developer) | the system that needs to be verified |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | -------------------------------------------------------------------------------- |\n| (variable) | bool | whether or not the indicated system is registered in the system manager instance |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-12" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-10" + }, + { + "text": "has_systems | 1", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "has-systems-1" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "has_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": " function verifies whether or not a list of systems is already registered in the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "system_manager", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "has_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "has_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "This function is marked as ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "nodiscard.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "nodiscard.", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-13" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-13" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-2" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | --------------------------------------------- |\n| list of TSystems | template | the list of systems that needs to be verified |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-13" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ---------------------------------------------------------------------------------- |\n| (variable) | bool | whether or not the indicated systems are registered in the system manager instance |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-13" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-11" + }, + { + "text": "has_systems | 2", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "has-systems-2" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": "has_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": " function verifies whether or not a list of systems is already registered in the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": "system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": "system_manager", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-14" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-14" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | --------------------------------------------- |\n| list of TSystems | template | the list of systems that needs to be verified |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-14" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ---------------------------------------------------------------------------------- |\n| (variable) | bool | whether or not the indicated systems are registered in the system manager instance |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-14" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-12" + }, + { + "text": "has_systems | 3", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "has-systems-3" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "has_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": " function verifies whether or not a list of systems is already registered in the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "system_manager", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "has_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "has_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "This function is marked as ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "nodiscard.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "nodiscard.", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-15" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-15" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-4" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------ | --------------------------------------------- |\n| list of TSystems | templat | the list of systems that needs to be verified |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-15" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ---------------------------------------------------------------------------------- |\n| (variable) | bool | whether or not the indicated systems are registered in the system manager instance |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-15" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-13" + }, + { + "text": "has_systems | 4", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "has-systems-4" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "has_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": " function verifies whether or not a list of systems is already registered in the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "system_manager", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "system_manager", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "has_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "has_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "This function is marked ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "nodiscard.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "nodiscard.", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-16" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-16" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-5" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------ | --------------------------------------------- |\n| list of TSystems | template | the list of systems that needs to be verified |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-16" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ------------------------------------------------------------------------------ |\n| (variable) | bool | whether or not the indicated systems are loaded in the system-manager instance |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-16" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-14" + }, + { + "text": "mark_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "mark-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-17" + }, + { + "text": "The", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-17" + }, + { + "text": "mark_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-17" + }, + { + "text": " function marks a system for destruction at the next tick of the game loop.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-17" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-17" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------- | ---------------------------------- |\n| TSystem | TSystem | the system to mark for destruction |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-17" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ------------------------------------------------- |\n| (variable) | bool | whether or not the system was successfully marked |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-17" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-15" + }, + { + "text": "mark_systems | 1", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "mark-systems-1" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-18" + }, + { + "text": "The", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-18" + }, + { + "text": "mark_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-18" + }, + { + "text": " function marks a system for destruction at the next tick of the game loop.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-18" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-18" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-7" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------- | ---------------------------------- |\n| TSystem | TSystem | the system to mark for destruction |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-18" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ------------------------------------------------- |\n| (variable) | bool | whether or not the system was successfully marked |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-18" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-16" + }, + { + "text": "mark_systems | 2", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "mark-systems-2" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "mark_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": " function marks a list of systems for destruction at the next tick of the game loop.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "mark_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "mark_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "This system is marked as ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "nodiscard.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "nodiscard.", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-19" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-19" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------- |\n| TSystems | TSystems | the systems to mark for destruction |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-19" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ------------------------------------------------- |\n| (variable) | bool | whether or not the system was successfully marked |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-19" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-17" + }, + { + "text": "enable_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "enable-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-20" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-20" + }, + { + "text": "enable_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-20" + }, + { + "text": " function enables a system.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-20" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-20" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-9" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------- | -------------------- |\n| TSystem | TSystem | the system to enable |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-20" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | -------------------------------------------------- |\n| (variable) | bool | whether or not the system was successfully enabled |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-20" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-18" + }, + { + "text": "enable_systems", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "enable-systems" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "enable_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": " function enables a list of systems.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "enable_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "enable_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-21" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-21" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | --------------------- |\n| TSystems | TSystems | the systems to enable |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-10" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-21" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ---------------------------------------------------- |\n| (variable) | bool | whether or not the systems were successfully enabled |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-21" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-19" + }, + { + "text": "disable_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "disable-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-22" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-22" + }, + { + "text": "disable_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-22" + }, + { + "text": " function disables a system.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-22" + }, + { + "text": "A disabled system is ignored during the game loop, but the system is not destroyed.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-22" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-22" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-11" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------- | --------------------- |\n| TSystem | TSystem | the system to disable |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-11" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-22" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | --------------------------------------------------- |\n| (variable) | bool | whether or not the system was successfully disabled |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-22" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-20" + }, + { + "text": "disable_systems", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "disable-systems" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "disable_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": " function disables a list of systems.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "disable_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "disable_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-23" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-23" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-12" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------- |\n| TSystems | TSystems | the systems to disable |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-12" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-23" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---- | ----------------------------------------------------- |\n| (variable) | bool | whether or not the systems were successfully disabled |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-23" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-21" + }, + { + "text": "nb_systems | 1", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "nb-systems-1" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-24" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-24" + }, + { + "text": "nb_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-24" + }, + { + "text": " function returns the number of systems registered in the system manager.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-24" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-24" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-13" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-13" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-24" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------ | -------------------------------- |\n| number of systems | std::size_t | the number of systems registered |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-24" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-22" + }, + { + "text": "nb_systems | 2", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "nb-systems-2" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": "nb_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": " function is an overloaded version of the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": "nb_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": " function. This version returns the system number of a certain type to register in the system manager.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-25" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-25" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-14" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------ | ------------------------------ |\n| sys_type | system_type | represents the type of systems |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-14" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-25" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------ | ----------------------------------------- |\n| number of systems | std::size_t | the number of systems of a specified type |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-25" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-23" + }, + { + "text": "create_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "create-system" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-26" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-26" + }, + { + "text": "create_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-26" + }, + { + "text": " function creates a system with the provided argument.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-26" + }, + { + "text": "This function is a factory.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-26" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-26" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-15" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------- | ---------------------------------------------- |\n| TSystem | TSystem | represents the type of system to create |\n| TSystemArgs | (logic) | the arguments to create the constructed system |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-15" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-26" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------- | --------------------------------- |\n| TSystem | TSystem | a reference to the created system |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-26" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-24" + }, + { + "text": "create_system_rt", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "create-system-rt" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-27" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-27" + }, + { + "text": "load_systems", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "load-systems" + }, + { + "text": "Public Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "load_systems", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": " function loads many os systems.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "This function recursively calls the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "create_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "create_system", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "public-function-28" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-28" + }, + { + "text": "Template Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "template-type-16" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ------------------------------------ |\n| TSystems | TSystems | represents a list of systems to load |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-16" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "response-27" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------- | ------------------------- |\n| (variable) | (tuple) | a tuple of systems loaded |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-27" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "example-25" + }, + { + "text": "clock", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "clock" + }, + { + "text": "Private Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-type" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-29" + }, + { + "text": "Private typedefs.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-29" + }, + { + "text": "syntactic sugar name for a chrono steady clock", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-29" + }, + { + "text": "system_ptr", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "system-ptr" + }, + { + "text": "Private Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-type-2" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-30" + }, + { + "text": "syntactic sugar name for a pointer to base_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-30" + }, + { + "text": "system_array", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "system-array" + }, + { + "text": "Private Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-type-3" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-31" + }, + { + "text": "syntactic sugar name for an array of system_ptr", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-31" + }, + { + "text": "system_registry", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "system-registry" + }, + { + "text": "Private Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-type-4" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-32" + }, + { + "text": "syntactic sugar name for a multidimensional array of system_array (pre_update, logic_update, post_update)", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-32" + }, + { + "text": "systems_queue", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "systems-queue" + }, + { + "text": "Private Type", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-type-5" + }, + { + "text": "syntactic sugar name for a queue of system pointer to add.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "private-type-5" + }, + { + "text": "add_system_", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "add-system" + }, + { + "text": "Private Function", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-function" + }, + { + "text": "Usage Pattern", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-33" + }, + { + "text": "entity_registry_", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "entity-registry" + }, + { + "text": "Private Data Members", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "private-data-members" + }, + { + "text": "event::key*", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "event-key" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key" + }, + { + "text": "antara::gaming::event", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key" + }, + { + "text": " class contains functions and other elements that are common in gaming.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key" + }, + { + "text": "event::key_pressed", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": "struct key_pressed", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": "key_pressed", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": " struct provides functions that execute when a user presses a key.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": "This class is automatically reflected for scripting systems such as Lua, Python.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-pressed" + }, + { + "text": "Public Functions", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-functions" + }, + { + "text": "key_pressed | 1", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-1" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-1" + }, + { + "text": "key_pressed", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-1" + }, + { + "text": " function is a constructor that takes arguments to associate a key with logic.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-1" + }, + { + "text": "This is the principal constructor for key-press functions.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-1" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-34" + }, + { + "text": "Template Type", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "template-type-17" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------- | -------------------------------------------------- |\n| key_ | input::key | represents the keyboard key currently pressed |\n| alt_ | bool | true if the alt key on the keyboard is pressed |\n| control_ | bool | true if the control key on the keyboard is pressed |\n| shift_ | bool | true if the shift key on the keyboard is pressed |\n| system_ | bool | true if the system key on the keyboard is pressed |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-17" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "response-28" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-28" + }, + { + "text": "📌 Example", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "example-26" + }, + { + "text": "key_pressed | 2", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "key_pressed", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": " function that takes no arguments is the default constructor, provided for scripting-system convenience.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "key_pressed | 1", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": " function for more information.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "key_pressed | 1", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "key-pressed-2" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-35" + }, + { + "text": "Public Members", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-members" + }, + { + "text": "antara::gaming::input::key key", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "antara-gaming-input-key-key" + }, + { + "text": "Fields.", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "key pressed", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "is alt pressed at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "is ctrl pressed at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "is shift pressed at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "is system pressed at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields" + }, + { + "text": "event::key_released", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "event-key-released" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-released" + }, + { + "text": "antara::gaming::event::key\\_released", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-released" + }, + { + "text": " class provides functions and other elements that associate the release of a key with logic.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-released" + }, + { + "text": "This class is automatically reflected for scripting systems such as Lua, Python.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-key-released" + }, + { + "text": "Public Functions", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-functions-2" + }, + { + "text": "key_released", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "key-released" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released" + }, + { + "text": "key_released", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released" + }, + { + "text": " function is a constructor that takes arguments to associate a key with logic.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released" + }, + { + "text": "This is the principal constructor for key-release functions.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-36" + }, + { + "text": "Template Type", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "template-type-18" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------- | --------------------------------------------------- |\n| key_ | input::key | represents the keyboard key currently released |\n| alt_ | bool | true if the alt key on the keyboard is released |\n| control_ | bool | true if the control key on the keyboard is released |\n| shift_ | bool | true if the shift key on the keyboard is released |\n| system_ | bool | true if the system key on the keyboard is released |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-18" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "response-29" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-29" + }, + { + "text": "📌 Example", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "example-27" + }, + { + "text": "key_released | 2", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "key_released", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": " function that takes no arguments is the default constructor, provided for scripting-system convenience.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "key_released | 1", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": " function for more information.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "key_released | 1", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "key-released-2" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-37" + }, + { + "text": "Public Members", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-members-2" + }, + { + "text": "input::key key", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "input-key-key" + }, + { + "text": "Fields.", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "key released", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "is alt released at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "is ctrl released at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "is shift released at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "is system released at the same time.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-2" + }, + { + "text": "event::quit_game", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "event-quit-game" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-quit-game" + }, + { + "text": "antara::gaming::event::quit_game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-quit-game" + }, + { + "text": " class provides functions and other methods to quit a game.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "event-quit-game" + }, + { + "text": "quit_game", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "quit-game" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game" + }, + { + "text": "quit_game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game" + }, + { + "text": " struct is an event that leaves a game and provides a return value.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game" + }, + { + "text": "This class is automatically reflected for scripting systems such as Lua, Python.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game" + }, + { + "text": "Public Functions", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-functions-3" + }, + { + "text": "quit_game | 1", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": "quit_game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": " function is a constructor that takes arguments and quits the game.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": "This is the principal constructor for ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": "quit_game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": " functions.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-1" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-38" + }, + { + "text": "Template Type", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "template-type-19" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---- | ----------------------------------------------------- |\n| return_value | int | the return value of the program when leaving the game |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "template-type-19" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "response-30" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---- | ----------------------------------------------------- |\n| return_value | int | the return value of the program when leaving the game |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-30" + }, + { + "text": "📌 Example", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "example-28" + }, + { + "text": "quit_game | 2", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "quit_game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": " function that takes no arguments is the default constructor, provided for scripting-system convenience.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "quit_game | 1", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": " function for more information.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "quit_game | 1", + "tagName": "a", + "path": "antara/api/gaming", + "closestElementReference": "quit-game-2" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-39" + }, + { + "text": "Public Members", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-members-3" + }, + { + "text": "return_value_", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "return-value" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-40" + }, + { + "text": "Fields.", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "fields-3" + }, + { + "text": "the return value of the program when leaving the game", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "fields-3" + }, + { + "text": "Public Static Attributes", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-static-attributes" + }, + { + "text": "invoker_dispatcher", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "invoker-dispatcher" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-41" + }, + { + "text": "Static fields.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-41" + }, + { + "text": "sfml", + "tagName": "h2", + "path": "antara/api/gaming", + "closestElementReference": "sfml" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml" + }, + { + "text": "antara::gaming::sfml", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml" + }, + { + "text": " class provides functions and other elements for SFML-related (Simple and Fast Multimedia Library) logic purposes.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml" + }, + { + "text": "sfml::audio_system", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "sfml-audio-system" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-audio-system" + }, + { + "text": "antara::gaming::sfml::audio_system", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-audio-system" + }, + { + "text": " class provides audio-related functions and other elements.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-audio-system" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-42" + }, + { + "text": "Public Functions", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-functions-4" + }, + { + "text": "audio_system", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "audio-system" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-43" + }, + { + "text": "Function Parameters", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------- | -------------------- |\n| registry | ent::registry | the entity_registry |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-8" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "response-31" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---- | ----------------------------------------------------- |\n| return_value | int | the return value of the program when leaving the game |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-31" + }, + { + "text": "update", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "update-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "update-2" + }, + { + "text": "update", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "update-2" + }, + { + "text": " function destroys and clears the sounds when they are finished.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "update-2" + }, + { + "text": "Usage Pattern", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "usage-pattern-44" + }, + { + "text": "Function Parameters", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "function-parameters-9" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/api/gaming", + "closestElementReference": "response-32" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | void | |", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "response-32" + }, + { + "text": "sfml::component_sound", + "tagName": "h3", + "path": "antara/api/gaming", + "closestElementReference": "sfml-component-sound" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-component-sound" + }, + { + "text": "antara::gaming::sfml::component_sound", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-component-sound" + }, + { + "text": " struct contains sound and the sound's attributes (such as volume).", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sfml-component-sound" + }, + { + "text": "Public Members", + "tagName": "h4", + "path": "antara/api/gaming", + "closestElementReference": "public-members-4" + }, + { + "text": "sound", + "tagName": "h5", + "path": "antara/api/gaming", + "closestElementReference": "sound" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sound" + }, + { + "text": "sf::Sound sound", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sound" + }, + { + "text": " object is the SFML Sound instance and contains the sound data.", + "tagName": "p", + "path": "antara/api/gaming", + "closestElementReference": "sound" + } + ], + "antara/api/gateways": [ + { + "text": "Gateways", + "tagName": "h1", + "path": "antara/api/gateways", + "closestElementReference": "gateways" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "introduction" + }, + { + "text": "The Gateway Antara Module allows the user to facilitate, manage, and trade tokenized representations of foreign blockchain assets.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "introduction" + }, + { + "text": "For example, a user is able to deposit their real-world BTC into a monitored address on the Bitcoin blockchain. Then, on the Gateways-enabled Smart Chain, the ownership of this BTC is tokenized. Only the owner of the token has the right to withdraw the BTC to a chosen address. The user that made the deposit can use the token either for asset trading, or for other creative purposes.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "introduction" + }, + { + "text": "This allows the Gateways-enabled Smart Chain to feature secure, on-chain, high-speed trading.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "introduction" + }, + { + "text": "Using an established Gateways contract is not considered difficult. However, setting up the gateway requires the user to closely follow several detailed steps.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "introduction" + }, + { + "text": "Tutorial Availability", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "tutorial-availability" + }, + { + "text": "The Antara Tutorials section features a full walkthrough of the Gateways module.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Gateways Module Tutorial", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Gateways Module Tutorial", + "tagName": "a", + "path": "antara/api/gateways", + "closestElementReference": "tutorial-availability" + }, + { + "text": "gatewaysaddress", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysaddress" + }, + { + "text": "gatewaysaddress", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysaddress" + }, + { + "text": "gatewaysaddress", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysaddress" + }, + { + "text": " method returns information about the on-chain gateway.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"GatewaysCCaddress\" | (string) | taking the contract's EVAL code as a modifier, this is the public address that corresponds to the contract's privkey |\n| \"Gatewaysmarker\" | (string) | the unmodified public address generated from the contract's privkey |\n| \"GatewaysPubkey\" | (string) | the pubkey for the gateways module |\n| \"GatewaysCCassets\" | (string) | this property is used for development purposes only and can otherwise be ignored |\n| \"myCCaddress\" | (string) | taking the contract's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| \"myaddress\" | (string) | the public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples" + }, + { + "text": "gatewaysbind", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysbind" + }, + { + "text": "gatewaysbind tokenid oracletxid coin tokensupply M N pubkey(s) pubtype p2shtype wiftype [taddr]", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysbind" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysbind" + }, + { + "text": "gatewaysbind", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysbind" + }, + { + "text": " method binds the provided sources into a new gateway.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysbind" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------- |\n| tokenid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": " that the gateway will control as a proxy of foreign (off-chain) assets |\n| oracletxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": " under which the gateway should be created |\n| name | (string) | the name of the coin represented by the gateway's proxy token |\n| tokensupply | (number) | the maximum available supply of the proxy token; this should be equal to the total number of ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": " tokens |\n| M | (number) | the minimum number of gateway signatory nodes required to facilitate a gateway transaction |\n| N | (number) | the full number of gateway signatory nodes that will control the gateway |\n| pubkey | (string) | the pubkey on which tokens will be available after conversion |\n| pubtype | (number) | the prefix number of pubkey type of external chain |\n| p2shtype | (number) | the prefix number of p2sh type of external chain |\n| wiftype | (number) | the prefix number of wif type of external chain |\n| taddr | (number) | the 2nd byte of prefix number of pubkey type (optional, only for 2 byte prefix chains) |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Step One:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Step Two:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Broadcast using ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "sendrawtransction:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "sendrawtransction:", + "tagName": "a", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "This is the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": " for the gateway.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "FIXME new RPC added\ngatewaysclaim and gatewayscompletesigning need a review and completion", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-2" + }, + { + "text": "gatewaysclaim", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "gatewaysclaim bindtxid coin deposittxid destpub amount", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "gatewaysclaim", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": " method allows the owner of the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "deposittxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": " to claim their on-chain proxy tokens. This method can only be executed by the owner of the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": " that was used to launch the daemon from which the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": " call was executed.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysclaim" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------ |\n| bindtxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": " of the gateway |\n| coin | (string) | the name of the proxy token |\n| deposittxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "deposittxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": " returned after broadcasting the hex returned from the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": " method |\n| destpub | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": " address to which the proxy tokens should be sent |\n| amount | (number) | the amount to send to the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-3" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Step One:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Command", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Step Two: Broadcast using ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "sendrawtransction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "pushpin-examples" + }, + { + "text": "gatewayscompletesigning", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewayscompletesigning" + }, + { + "text": "gatewayscompletesigning withdrawtxid coin hex", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayscompletesigning" + }, + { + "text": "gatewaysdeposit", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "gatewaysdeposit bindtxid height coin cointxid claimvout deposithex proof destpub amount", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": " method is used to alert the gateway of the completed deposit of the foreign (off-chain) asset.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": " method then returns a ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": " which serves as the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "deposittxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdeposit" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------- |\n| bindtxid | (string) | the bindtxid of the gateway |\n| height | (number) | the block height of the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": " wherein the funds were sent to the foreign-asset gateway pubkey |\n| name | (string) | the name of the foreign asset |\n| cointxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": " returned when the foreign assets were sent to the gateway pubkey |\n| claimvout | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": " of the claim (on the first use, this value should be 0) |\n| deposithex | (string) | returned from the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": " wherein the funds were sent to the foreign-asset gateway pubkey |\n| proof | (string) | the proof for the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "; can be found using the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "gettxoutproof", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": " method |\n| destpub | (string) | the public key where the tokens should be received on the Smart Chain |\n| amount | (number) | the amount of the deposit |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "gettxoutproof", + "tagName": "a", + "path": "antara/api/gateways", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "Step Two: Broadcast using ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "sendrawtransction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "(This is the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "deposittxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": ")", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-3" + }, + { + "text": "gatewaysdumpprivkey", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "gatewaysdumpprivkey bindtxid address", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "gatewaysdumpprivkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": " method returns the private key for the given ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "The private key is returned in the wif format of the associated external chain.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysdumpprivkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------- |\n| bindtxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": " for the associated gateway |\n| address | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": " for which the private key is requested |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ----------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| privkey | (string) | the private key |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-4" + }, + { + "text": "gatewaysexternaladdress", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "gatewaysexternaladdress bindtxid pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "gatewaysexternaladdress", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": " method returns the address on the external chain for the gateways associated with the given ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": " values.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysexternaladdress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------- |\n| bindtxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": " for the associated gateway |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": " needed to generate the address on the external chain |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ----------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| address | (string) | the address for the given pubkey |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-5" + }, + { + "text": "gatewaysinfo", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": "gatewaysinfo bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": "gatewaysinfo", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": " method returns information about the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": " gateway.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewaysinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| bindtxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-7" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-7" + }, + { + "text": " for the associated gateway |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------ |\n| result | (string) | whether the command executed successfully |\n| name | (string) | the name of the command |\n| pubkey | (string) | the pubkey that holds the converted proxy tokens |\n| coin | (string) | the name of the asset that the proxy token represents |\n| oracletxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": " of the associated oracle |\n| taddr | (number) | the coin-specific address that customizes the address for the relevant foreign coin |\n| prefix | (number) | the coin-specific address prefix that customizes the address for the relevant foreign coin |\n| prefix2 | (number) | the coin-specific address prefix that customizes the address for the relevant foreign coin |\n| deposit | (string) | the t address associated with the gateway pubkey |\n| tokenid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": " of the proxy token |\n| totalsupply | (number) | the total available supply of proxy tokens |\n| remaining | (number) | the amount of proxy tokens not currently issued |\n| issued | (number) | the amount of proxy tokens currently issued |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-6" + }, + { + "text": "gatewayslist", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": "gatewayslist", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": "gatewayslist", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": " method displays a list of ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": "bindtxids", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": " for the available gateways.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayslist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ------------------------------------ |\n| bindtxid | (string) | the bindtxid of an available gateway |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-7" + }, + { + "text": "gatewayswithdraw", + "tagName": "h2", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "gatewayswithdraw bindtxid coin withdrawpub amount", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "gatewayswithdraw", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": " method sends proxy tokens in the gateways ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": ". The gateway then sends the foreign assets to the indicated foreign ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "withdrawpub", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": " pubkey.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "gatewayswithdraw" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| bindtxid | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": " of the gateway |\n| coin | (string) | the name of the asset |\n| withdrawpub | (string) | the ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": " to which the foreign assets should be sent |\n| amount | (number) | the number of proxy tokens to send to the gateway, which will then be exchanged for the relevant amount of the foreign asset |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/gateways", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "Step Two: Broadcast using ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "sendrawtransction", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/gateways", + "closestElementReference": "examples-8" + } + ], + "antara/api/heir": [ + { + "text": "Heir", + "tagName": "h1", + "path": "antara/api/heir", + "closestElementReference": "heir" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "The Heir Antara Module allows cryptocurrency funds to be passed on as an inheritance.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "The module functions by the means of a special ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " Antara address. In this type of address there are two private keys that are capable of spending funds from the address. However, only the first private key may spend funds by default.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "This first private key belongs to the owner of the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " Antara address. The owner may use this key to freely spend funds and also to add more funds to the address.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Should the owner fail to interact with the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " Antara address for a specified period of time (", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "), the address automatically unlocks to the second key. This second key is owned by the heir. Once unlocked, both the creator and the heir may freely spend funds from the address.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " method allows anyone, including users who are neither the owner nor the heir, to add funds to the address. These additions are considered donations and they do not affect the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " calculations that can unlock the funds for the heir. The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " method warns the user that they are making a donation if the method detects that the user is neither the owner nor the heir.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "heiradd", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "The Heir Antara Module accepts both coins and tokens. These can be the base coin of the Smart Chain, on-chain tokens created via the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Tokens", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " Antara Module that represent on-chain assets, or even tokens that are formed via the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Gateways", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": " Module to represent off-chain assets or other cryptocurrencies.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Tokens", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Gateways", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "introduction" + }, + { + "text": "Heir Module Flow", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "Anyone can create a new Heir Antara address using ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirfund", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirfund", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "The owner of this address can add more funds using ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiradd", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiradd", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "Any other user, including the heir, can add donations using ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiradd", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiradd", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "The owner can claim funds at any time using ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirclaim", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirclaim", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "Once ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "inactivitytime", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": " period is reached, the heir can also claim funds using ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirclaim", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirclaim", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "To retrieve the details of a particular funding plan, use ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirinfo", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirinfo", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "To retrieve a list of all funding plans on the Smart Chain, use ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirlist", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heirlist", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "To output Heir Antara addresses, use ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiraddress", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiraddress", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "If an owner of an Heir Antara address seeking to add funds to their account\navoids the normal methods (the RPC provided) and instead manually creates a\nutxo contribution, this utxo will not follow the normal patterns.\nSpecifically, if the owner manually creates a contribution utxo that derives\nfrom both the owner pubkey and also from another pubkey, this utxo will not\naffect the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": " calculation. Instead of resetting the\n", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": ", the utxo will count only as a donation.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heir-module-flow" + }, + { + "text": "heiradd", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd amount fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": " method adds more funds to the Heir plan.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "When the owner uses the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": " method the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": " calculations are reset, thus renewing the owner's sole access to the funds.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "When anyone other than the owner uses the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": " method to add funds, these funds are considered to be donations and won't affect the calculation of the elapsed ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": ". The method also sends a warning to the contributor to ensure they agree to submit the given funds as a donation.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "For each transaction using ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": ", the funds may be sent either from the owner's pubkey, or from a non-owner's pubkey. Funds cannot be sent from both owner and non-owner pubkeys at the same time. This can cause confusion for the owner if the funds available in their wallet are held partially in the owner's declared pubkey for this Heir account, and partially in other pubkeys. Therefore, the owner should ensure that all funds they desire to add to the account are within their declared Heir Antara pubkey before attempting to use ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": " method to find a", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "heirlist", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heiradd" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | (number) | the amount of funds to be added; this amount will be withdrawn from the contributor's coins or tokens, as determined by the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": " parameter used when the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": " method was executed |\n| fundingtxid | (string) | the transaction id returned from the original ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": " transaction |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "heirfund", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "examples" + }, + { + "text": "Step 1: Create a raw transaction (in coins) and get the HEX value", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "bash e7b8f58539e2554a51d8438e5e58b0a12896f076e2a2850a503f372e402521b ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction" + }, + { + "text": "Step 3: Decode raw transaction to ensure values are sane (optional)", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-raw-transaction-to-ensure-values-are-sane-optional" + }, + { + "text": "heiraddress", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "heiraddress pubkey", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "heiraddress", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": " method shows the owner's addresses and balances for the Heir plan.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "The functionality of this method is only applicable when executed on a\ndaemon that was launched using the pubkey of the owner of the relevant Heir\nplan. For all other daemons, the method is available, but has no functional\npurpose. * The argument of this method is the ", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "heir's", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": " pubkey.", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "heiraddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------- |\n| pubkey | (string) | the heir's pubkey (in hexademical) |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the method executed successfully |\n| HeirCCaddress | (string) | taking the module's EVAL code as a modifier, this is the public address that corresponds to the module's privkey |\n| CCbalance | (number) | the unspent amount in the HeirCCaddress |\n| HeirNormalAddress | (string) | the unmodified normal public address generated from the module's privkey, used for markers |\n| HeirCC", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "Address | (string) | the address for storing funds in ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "coins", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": " spendable by either the owner or the heir (funds address) |\n| HeirCC", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "TokensAddress | (string) | the address for storing funds in ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "tokens", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": " spendable by either the owner or the heir (token funds address) |\n| myCCaddress(Heir) | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "heir", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": " |\n| myaddress | (string) | the unmodified normal public address of the pubkey ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "used to launch the daemon.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": " This is the normal address used to withdraw funds in coins from from HeirCC", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "Address. This property is applicable to any user who wants to use the Heir plan (owner or heir) |\n| mybalance | (number) | the balance of myaddress in coins |\n| MyTokenAddress | (string) | the user's address to withdraw funds in tokens from HeirCC", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "TokensAddress (in development) |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "used to launch the daemon.", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "response-2" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example" + }, + { + "text": "heirclaim", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "heirclaim amount fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": " method allows the owner to claim funds from the plan.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "After the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": " period has elapsed, the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": " method also allows the heir to claim funds.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": " method to find a", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "heirlist", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heirclaim" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | (number) | the amount of funds to be added; this amount will be withdrawn from the contributor's coins or tokens, as determined by the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": " parameter used when the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": " method was executed |\n| fundingtxid | (string) | the transaction id returned from the original ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": " transaction |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "heirfund", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "examples-2" + }, + { + "text": "Step 1 Create a raw transaction (in coins) and get the HEX value", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-2" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "bash f0f7f536a261ee8e02fb592d81305b6052939a510e3e3435280b0bad454626c7 ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-2" + }, + { + "text": "heirfund", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "heirfund amount name heirpubkey inactivitytime memo ( tokenid )", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": " method creates a new Heir funding plan.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heirfund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| amount | (number) | the initial funding amount, in coins or tokens (this parameter is considered to be the amount of tokens if the (tokenid) parameter is present) |\n| name | (string) | the name of the heir funding plan (arbitrary) |\n| heirpubkey | (string) | the heir's public key (in hexademical) |\n| inactivitytime | (number) | the time (in seconds) that must pass without the owner executing an ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": " method, after which the address unlocks to the heir |\n| memo | (string) | a store for arbitrary data; for example, this can hold a digital copy of a physical will or other relevant documents |\n| tokenid | (string, optional) | the token id in hexademical; if set, the funds contributed to this address must be of the variety specified by the tokenid |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "All data for this transaction, including the memo field, must be less than\nor equal to 10000 bytes * To store documents of large sizes, include a\n", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "URI", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": " in the", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "memo", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": " field which links to such a document on the World Wide Web and its\nhash for verification.", + "tagName": "li", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "URI", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "examples-3" + }, + { + "text": "Step 1: Create a raw transaction (in coins) and get the HEX value", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "The following example demonstrates Heir usage when utilizing coins, instead of\ntokens. When instead using tokens, create the tokens first with the\n", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "tokencreate", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": " method and pass the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "\nas the last parameter of ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "heirfund.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "tokencreate", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "heirfund.", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-1-create-a-raw-transaction-in-coins-and-get-the-hex-value-3" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "bash b8b5fa46b545548fbab3baeb5adeaafedd80494006af1b04007fb9f7379ce1f0 ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "This transaction id is the funding transaction id of this Heir plan. Copy and save this to a safe location.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "Wait until the transaction is confirmed.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-2-broadcast-raw-transaction-3" + }, + { + "text": "Step 3: Decode the raw transaction to ensure the values are sane (optional)", + "tagName": "h5", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "step-3-decode-the-raw-transaction-to-ensure-the-values-are-sane-optional" + }, + { + "text": "heirinfo", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "heirinfo fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "heirinfo", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": " method returns detailed information about the funding plan.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": " method to find a", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "heirlist", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "heirinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------ |\n| fundingtxid | (string) | the transaction id returned from the original ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-5" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-5" + }, + { + "text": " transaction |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-5" + }, + { + "text": "heirfund", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| fundingtxid | (string) | the id of the funding plan, the txid of ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": " transaction |\n| name | (string) | the name of the heir plan |\n| tokenid | (string) | ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "token id", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": ", if applicable |\n| owner | (string) | the owner's public key |\n| heir | (string) | the heir's public key |\n| type | (string) | the type of this funding plan (coins or tokens) |\n| lifetime | (number) | the total amount contributed to this plan since inception, given in the relevant currency (coins or tokens) |\n| available | (number) | the amount available, given in the relevant currency (coins or tokens) |\n| OwnerRemainderTokens | (number) | the amount of funds remaining in the account that were contributed by the owner |\n| InactivityTimeSetting | (number) | the ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": " (in secs) that is required to elapse without owner activity before the plan is automatically unlocked to the heir |\n| IsHeirSpendingAllowed | (boolean) | a boolean flag that indicates whether the heir is allowed to claim funds |\n| InactivityTime | (number) | the owner's real inactivity time (in seconds) |\n| memo | (string) | a store for arbitrary data; for example, this can hold a digital copy of a physical will or other relevant documents |\n| result: | (string) | whether the command succeeded |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "heirfund", + "tagName": "a", + "path": "antara/api/heir", + "closestElementReference": "response-5" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-2" + }, + { + "text": "heirlist", + "tagName": "h2", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": " method outputs a list of all available ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "'s on the Smart Chain.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "heirlist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | ---- | ---- |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/heir", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | ---------------------------------------------------------- |\n| fundingtxid | (array of strings) | an array containing all ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-6" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-6" + }, + { + "text": "'s on the Smart Chain |", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "response-6" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/heir", + "closestElementReference": "example-3" + } + ], + "antara/api": [ + { + "text": "Antara API", + "tagName": "h1", + "path": "antara/api", + "closestElementReference": "antara-api" + }, + { + "text": "This section of the documentation contains descriptions of the various methods available for each of the Antara modules.", + "tagName": "p", + "path": "antara/api", + "closestElementReference": "antara-api" + } + ], + "antara/api/musig": [ + { + "text": "MuSig", + "tagName": "h1", + "path": "antara/api/musig", + "closestElementReference": "mu-sig" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "Notice", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "The MuSig Module is an experimental feature. It is provided as a demonstration of Antara capabilities and of the MuSig concept. If you would like to use MuSig on a production-level Smart Chain, please reach out to the Komodo team on ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "Discord.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "Discord.", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "The MuSig Antara Module implements a new type of multi-signature functionality. MuSig allows a blockchain to process multi-signature transactions in a more data-efficient manner. MuSig also keeps private the number of signers partaking in a multi-signature transaction.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "This functionality is facilitated by MuSig's implementation of Schnorr Signature technology. Schnorr Signatures are unique in that each signature is 64 bytes in size, regardless of the number of signers in a transaction. Also, a multi-signature Schnorr Signature can be processed in one verification.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "Schnorr Signatures differs from the existing multi-signature method (ECDSA), as the ECDSA method requires each signer of a transaction to be verified separately. Also, with the ECDSA method each set of signers must be collected into a final verification. The size of the ECDSA multi-signature transaction can vary according to the number of signers in the set, and this can disclose information that would otherwise remain private.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "Therefore, Schnorr Signatures greatly reduce verification time and data-storage requirements, and enhance user privacy.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "For further information, see this ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "article.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": " Also, the reader may refer to the comments in the following core ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": " files, ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "File 1", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "File 2.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "article.", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "File 1", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "File 2.", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "introduction" + }, + { + "text": "MuSig Module Flow", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Create a combined pubkey using the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combine", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response, take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " values", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combine", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response, take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " values", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Send coins to ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " using the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "send", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Decode the returned raw transaction using ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "getrawtransaction", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the decoded raw transaction, take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "sendtxid", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Decode the returned raw transaction using ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "getrawtransaction", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "getrawtransaction", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the decoded raw transaction, take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "sendtxid", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Calculate the message that needs to be signed using the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "calcmsg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response, take note of ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "This ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " needs to be signed by all participating pubkeys", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "calcmsg", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response, take note of ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "This ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " needs to be signed by all participating pubkeys", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On each node create a session using the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "session", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response on each node take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Do not stop the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon on any node from this point forward", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon stores the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value as a part of a ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "global data structure", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Should any ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon be stopped, the MuSig workflow must be restarted from the beginning", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Also, execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "sessions", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method only once on each node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "session", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "From the response on each node take note of the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Do not stop the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon on any node from this point forward", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon stores the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value as a part of a ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "global data structure", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Should any ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon be stopped, the MuSig workflow must be restarted from the beginning", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon stores the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value as a part of a ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "global data structure", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Should any ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "komodod", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " daemon be stopped, the MuSig workflow must be restarted from the beginning", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Also, execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "sessions", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method only once on each node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On each node use the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commit", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "nonce", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "commit", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "nonce", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On each node use the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "nonce", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "partialsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "nonce", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Transfer each node's ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "partialsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value to each other node", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On each node execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "partialsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Verify that the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value of each node is the same as each other node by transferring one ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value on one node to all other nodes", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "partialsig", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Verify that the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value of each node is the same as each other node by transferring one ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value on one node to all other nodes", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On at least one node execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "verify", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Use the returned output to verify that the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value will be able to successfully execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "spend", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method for the desired ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "verify", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Use the returned output to verify that the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " value will be able to successfully execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "spend", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method for the desired ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "On one node execute the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "spend", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": " method and broadcast the returned raw transaction", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "mu-sig-module-flow" + }, + { + "text": "Tutorial Availability", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "tutorial-availability" + }, + { + "text": "The Antara Tutorials section features a full installation and walkthrough tutorial of the Musig module.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Musig Module Tutorial", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to Musig Module Tutorial", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "tutorial-availability" + }, + { + "text": "calcmsg", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "cclib calcmsg 18 '[\"sendtxid\", \"scriptPubKey\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "calcmsg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " method can be used by any one of the signers to initiate a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "To calculate the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " value, this method requires a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " and a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "sendtxid", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " is the id of a transaction that added funds to the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " through the ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "send", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " method.", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "scriptPubKey", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " expected here is of the type ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "p2pk", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " in ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "hex", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " form.", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "p2pk", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "To create a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " from a normal ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": ", add the characters ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "21", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " to the beginning of the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " string and the characters ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "ac", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " to the end of the string:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " is: ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "02f7597468703c1c5c8465dd6d43acaae697df9df30bed21494d193412a1ea193e", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "The associated ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "scriptPubkey", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " is: ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "2102f7597468703c1c5c8465dd6d43acaae697df9df30bed21494d193412a1ea193eac", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "calcmsg" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| sendtxid | (string) | the transaction id of the transaction created by the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": " method that was executed to fund the MuSig address; only the funds in the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "vout0", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": " of the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": " are spent |\n| scriptPubKey | (string) | a modified form of a pubkey; this is the pubkey that will receive the spent funds |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------------------------------------- |\n| msg | (string) | the message that must be signed by all the signers for the final ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response" + }, + { + "text": " to succeed |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples" + }, + { + "text": "combine", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "cclib combine 18 '[ \"pubkey1\", \"pubkey2\", .....]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "combine", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": " method produces the combined pubkey ( ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": " ) from all pubkeys provided.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "Usage of this method depends upon the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "combine" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ---------------------- | -------- | --------------------------------------------------- |\n| pubkey1, pubkey2, .... | (string) | the pubkeys of all the signers of the MuSig address |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | -------------------------------------------- |\n| pkhash | (string) | the 32-byte hash of the original public keys |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-2" + }, + { + "text": "commit", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "cclib commit 18 '[\"pkhash\", ind, \"commitment\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "commit", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " method produces a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " for each set of ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "index", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " values provided.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "The returned ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " must be shared with all corresponding nodes.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "commit" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | --------------------------------------------------------------------------------------- |\n| pkhash | (string) | the 32-byte hash of the original public keys |\n| ind | (decimal number) | the index of the node, whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": " is being added to the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "global data structure", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": " |\n| commitment | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": " value produced by the node with index ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ---------------- | ----------------------------------------------------------------------- |\n| added_index | (decimal number) | the index of the node whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": " is added |\n| myind | (decimal number) | the index of the node on which this method is executed |\n| nonce | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": " value produced by the node on which this method is executed |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-3" + }, + { + "text": "nonce", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "cclib nonce 18 '[\"pkhash\", ind, \"nonce\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " method produces a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " for each set of ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "index", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " value provided.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "The returned ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " must be shared with all corresponding nodes.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "nonce" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---------------- | ---------------------------------------------------------------------------------- |\n| pkhash | (string) | the 32-byte hash of the original public keys |\n| ind | (decimal number) | the index of the node, whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": " is being added to the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "global data structure", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": " |\n| nonce | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": " value produced by the node with index ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ---------------- | ---------------------------------------------------------------------------- |\n| added_index | (decimal number) | the index of the node whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": " is added |\n| myind | (decimal number) | the index of the node on which this method is executed |\n| partialsig | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": " value produced by the node on which this method is executed |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-4" + }, + { + "text": "partialsig", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "cclib partialsig 18 '[\"pkhash\", ind, \"partialsig\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " method produces a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " for each set of ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "index", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " values provided.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "The returned ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " must be shared with all corresponding nodes.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "partialsig" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | ------------------------------------------------------------------------------------- |\n| pkhash | (string) | the 32-byte hash of the original public keys |\n| ind | (decimal number) | the index of the node, whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": " is now added to the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "global data structure", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": " |\n| partialsig | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": " value produced by the node with index ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ---------------- | ----------------------------------------------------------------------------- |\n| added_index | (decimal number) | the index of the node whose ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": " is added |\n| myind | (decimal number) | the index of the node on which this method is executed |\n| combinedsig | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": " value produced by the node on which this method is executed |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-5" + }, + { + "text": "send", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "cclib send 18 '[\"combined_pk\", amount]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " method allows any node on the network to fund the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " with the specified ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " .", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "The returned transaction id is called the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": ". It is used as a parameter for the methods ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "calcmsg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "spend.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "calcmsg", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "spend.", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "Usage of this method depends upon the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "send" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | --------------------------------------------------- |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| amount | (number) | the amount of coins to be sent to the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-6" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-6" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------ |\n| hex | (string) | the send_transaction in raw-transaction format, provided in hexadecimal |\n| txid | (string) | the transaction id of the send transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-6" + }, + { + "text": "session", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "cclib session 18 '[\"myindex\", \"numsigners\", \"combined_pk\", \"pkhash\", \"msg\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "session", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " method creates a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "global data structure", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " on each node on which the method is executed. The method also adds a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " to sign the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " message provided.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "session" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| myindex | (decimal number) | the index of the node that is running this method; each node must be assigned a unique index from the set: {0,1,2,3, ... , (", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": "numsigners", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": " - 1)} |\n| numsigners | (decimal number) | the total number of signers participating |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| pkhash | (string) | the 32-byte hash of the original public keys |\n| msg | (string) | the message that needs to be signed by all the signers for the final ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": " to succeed |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | ------------------------------------------------------------------------ |\n| myind | (decimal number) | the index of the node on which this method is executed |\n| numsigners | (decimal number) | the total number of signers participating |\n| commitment | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": " value produced by the node for this ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": "session", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": " |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-7" + }, + { + "text": "spend", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "cclib spend 18 '[\"sendtxid\", \"combinedsig\", \"scriptPubKey\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " method spends coins to the indicated ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " expected here is of the type ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "p2pk", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " in ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " form.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "p2pk", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "To create a ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " from a normal ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": ", add the characters ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "21", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " to the beginning of the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " string and the characters ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "ac", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " to the end of the string:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " is: ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "02f7597468703c1c5c8465dd6d43acaae697df9df30bed21494d193412a1ea193e", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "The associated ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "scriptPubkey", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " is: ", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "2102f7597468703c1c5c8465dd6d43acaae697df9df30bed21494d193412a1ea193eac", + "tagName": "li", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "The method generates a raw transaction which must then be broadcast using ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "sendrawtransaction.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "sendrawtransaction.", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "spend" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| sendtxid | (string) | the transaction id of the transaction created by the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": " method used to fund the MuSig address; only the funds in the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "vout0", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": " of the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": " are spent |\n| combinedsig | (string) | the combined signature produced by all the signers |\n| scriptPubKey | (string) | a modified form of a pubkey to which funds are to be spent |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------- |\n| msg | (string) | the message that needs to be signed by all the signers for the final ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": " to succeed |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| combinedsig | (string) | the combined signature produced by all the signers |\n| hex | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": " transaction in raw-transaction format, provided in hexadecimal |\n| txid | (string) | the transaction id of the spend transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-8" + }, + { + "text": "verify", + "tagName": "h2", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "cclib verify 18 '[\"msg\", \"combined_pk\", \"combinedsig\"]'", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "verify", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": " method verifies that the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": " is able to spend the funds owned by ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": ". The funds in question are those which were referenced in the creation of the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "Usage of this method depends on the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": " method. The ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "verify" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------- |\n| msg | (string) | the message that needs to be signed by all the signers for the final ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": " to succeed |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| combinedsig | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": " value produced by the node on which this method is executed |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------- |\n| msg | (string) | the message that needs to be signed by all the signers for the final ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": " to succeed |\n| combinedsig | (string) | the ", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": " value produced by the node on which this method is executed |\n| combined_pk | (string) | the combined pubkey of all the signers |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": "spend", + "tagName": "a", + "path": "antara/api/musig", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/musig", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/musig", + "closestElementReference": "examples-9" + } + ], + "antara/api/oracles": [ + { + "text": "Oracles", + "tagName": "h1", + "path": "antara/api/oracles", + "closestElementReference": "oracles" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "introduction" + }, + { + "text": "The Oracles Antara Module allows a user to make off-chain data available on-chain. This enables developers to create and use software that responds to off-chain information and events.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "introduction" + }, + { + "text": "Those who publish data to an oracle are called publishers. There is a fee-based model to serve as an incentive for publishers.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "introduction" + }, + { + "text": "Oracles Module Flow", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "Create an Oracle using ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclescreate", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclescreate", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "Register as a data publisher for the oracle using the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesregister", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": " method; at this stage, the publisher indicates the fee for their data updates", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "Anyone can register as a publisher for any oracle; users subscribe only to the publishers they desire", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesregister", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "Anyone can register as a publisher for any oracle; users subscribe only to the publishers they desire", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oracleslist", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": ", ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesinfo", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": ", and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclessamples", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": " methods allow the user to find oracles and publishers, find more information about a specific oracle and publisher, and discover samples of an existing publisher, respectively", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oracleslist", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesinfo", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclessamples", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "Anyone can subscribe to any specific publisher of any oracle using the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclessubscribe", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclessubscribe", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "A publisher can publish data using ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesdata", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": ", and thereby collect their fee from their subscribers", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesdata", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oracles-module-flow" + }, + { + "text": "oraclesaddress", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclesaddress" + }, + { + "text": "oraclesaddress (pubkey)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesaddress" + }, + { + "text": "oraclesaddress", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesaddress" + }, + { + "text": " method displays the oracle address for a specific pubkey.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | -------------------------------------------------------------------------------------- |\n| pubkey | (string, optional) | the pubkey of the requested info; by default it is the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------ |\n| result | (string) | whether the method executed successfully |\n| OraclesCCaddress | (string) | taking the module's EVAL code as a modifier, this is the public address that corresponds to the contract's privkey |\n| Oraclesmarker | (string) | the unmodified public address generated from the contract's privkey |\n| GatewaysPubkey | (string) | the pubkey for the Gateways Antara Module |\n| OraclesCCassets | (string) | this property is used for development purposes only and can otherwise be ignored |\n| CCaddress | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| myCCaddress | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| myaddress | (string) | the public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples" + }, + { + "text": "oraclescreate", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "oraclescreate name description format", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "oraclescreate", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": " method creates a new oracle.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclescreate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |\n| name | (string) | the desired name of the oracle contract |\n| description | (string) | the description of the oracle |\n| format | (string) | an indication of what format of data is accepted into this contract; use the list of characters provided below for this property |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "The various formats of data that can be registered for an oracle and their symbols are as follows:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "char string; size < 256 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "char string; size < 65536 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "d", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "binary data; size < 256 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "D", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "binary data; size < 65536 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "c", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "1 byte signed little endian number, 'C' if unsigned", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "2 byte signed little endian number, 'T' if unsigned", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "i", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "4 byte signed little endian number, 'I' if unsigned", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "l", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "8 byte signed little endian number, 'L' if unsigned", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "h", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "32 byte hash", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "Even though the formats ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "D", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " specify that the data size can be up to ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "65536", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " bytes, the combination of the transaction size and the data size cannot exceed the limit of ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "10000", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " bytes.", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "Although the formats ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "d", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "D", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " are for raw binary data, they are preferable to the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " human-readable formats. This is because the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " formats occupy twice the size of data on the blockchain, and yet their only advantage is their ability to show human-readable output in the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "oraclessamples", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " method.", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "oraclessamples", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "If data to be submitted is larger than ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "8KB", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": ", break it into chunks of size\n", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "8KB", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": " or lower.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Step 1: Create a customized oracle contract and get the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Step 2: Send raw transaction / broadcast the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "(Use ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD getrawmempool", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": " to ensure that the transaction receives confirmation.)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-2" + }, + { + "text": "oraclesdata", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclesdata oracletxid hexstr", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclesdata", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " method publishes data to an oracle.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "A publisher cannot successfully execute this command until they have at least one subscriber. A publisher may create their own subscriber account for this purpose. See ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclessubscribe.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclessubscribe.", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "Data is submitted using the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "hexstr", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " property. The first bytes of the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "hexstr", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " property must be the length of the data being submitted in hexadecimal format; this sets the string length for the rest of the data. The second portion of the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "hexstr", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " property is the data itself.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclesdata", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " method outputs a unique ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", called ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "oraclesdatatxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", which is the unique identifier for this data sample.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "The following script converts data entered in a normal-text form to a format accepted by an Oracle with the following characteristics. The oracle is of type: ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "S", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", and the first two bytes of data are the length, given in ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "Little Endian", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " format.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "for submitting data of the types ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "d", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", where the size is less than 256 bytes, the first byte denotes the length", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "for submitting data of the types ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "D", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": ", where the size is less than 65536 bytes, the first two bytes denotes the length in ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "Little Endian", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": " format", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "oraclesdata" + }, + { + "text": "📌 Examples for data submission", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-for-data-submission" + }, + { + "text": "Example A", + "tagName": "h5", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "The objective: to submit a ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " character string, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "\"teststring\"", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": ", to an oracle of the format ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "The data to meet this objective is as follows: ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "0a74657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Notice the first byte, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "0a", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "This is the hexadecimal representation of the decimal number ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " is the byte size of this ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " character string, because each character requires ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "1 byte", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " of space", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Notice the remaining bytes, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Each two characters is a byte representing a character", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "65", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "e", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "73", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " etc.", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Notice the first byte, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "0a", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "This is the hexadecimal representation of the decimal number ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " is the byte size of this ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " character string, because each character requires ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "1 byte", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " of space", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "This is the hexadecimal representation of the decimal number ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " is the byte size of this ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " character string, because each character requires ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "1 byte", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " of space", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Notice the remaining bytes, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Each two characters is a byte representing a character", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "65", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "e", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "73", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " etc.", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Each two characters is a byte representing a character", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "65", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "e", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "73", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "s", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "74", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " = ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "t", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": " etc.", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-a" + }, + { + "text": "Example B", + "tagName": "h5", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "The objective: to submit the ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " character string, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "\"teststring\"", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": ", to an oracle of the format ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "S", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "The data to meet this objective is as follows: ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "0a0074657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "Notice the first two bytes, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "0a", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "00", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "These are the hexadecimal representations of the decimal number ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": ", written to fill ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "2 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " and in ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "Little Endian", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " format", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "The remaining data, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "74657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": ", is the same as Example A", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "Notice the first two bytes, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "0a", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "00", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "These are the hexadecimal representations of the decimal number ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "10", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": ", written to fill ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "2 bytes", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " and in ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "Little Endian", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": " format", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "The remaining data, ", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "74657374737472696e67", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": ", is the same as Example A", + "tagName": "li", + "path": "antara/api/oracles", + "closestElementReference": "example-b" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| oracletxid | (string) | the unique identifying transaction id of the oracle |\n| hexstring | (string) | the first half of the string indicates the length of the string in bytes, the second half of the string is the data, typically provided in hex-encoded format |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Step 1: Subscribe to a oracle plan and get the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Step 2: Send raw transaction / broadcast the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-3" + }, + { + "text": "oraclesfund", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "oraclesfund oracletxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "oraclesfund", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": " method allows a user to register as a publisher on an oracle.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "This method must be executed before the user attempts to use the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesfund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-4" + }, + { + "text": "| Structure | Type | Description |\n| ---------- | -------- | --------------------------------------------------- |\n| oracletxid | (string) | the unique identifying transaction id of the oracle |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Step 1: Create a customized oracle contract and get the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Response from Step 1:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Step 2: Send raw transaction / broadcast the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Response from Step 2:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "(Use ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD getrawmempool", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": " to ensure that the transaction receives confirmation.)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Response from Step 3:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-4" + }, + { + "text": "oraclesinfo", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oraclesinfo oracletxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": " method displays information about a specific oracle using ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "For a list of all ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "'s available on the Smart Chain, see the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oracleslist", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "oracleslist", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclesinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | --------------------------------------------------- |\n| oracletxid | (string) | the unique identifying transaction id of the oracle |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| txid | (string) | the unique txid, or oracletxid, that identifies the oracle |\n| name | (string) | the name of the oracle contract |\n| description | (string) | the description of the oracle contract |\n| format | (string) | a string that identifies the data type accepted for the oracle contract (see ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "oraclescreate", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": ") |\n| marker | (string) | the unmodified public address generated from the oracle contract's privkey |\n| registered: | (array) | |\n| publisher | (string) | the unique identifier for the publisher (see ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": ") |\n| baton | (string) | the baton address of the publisher, which is an Antara address (based on the pubkey of the publisher and the EVAL code of the oracle contract) |\n| batontxid | (string) | the most recent baton utxo sent to the baton address; this is the tip of the linked list that connects all data samples for the publisher |\n| lifetime | (number) | the length of time since publisher's inception |\n| funds | (number) | the funds committed by subscribers to the publisher's account, and which are used for payouts |\n| datafee | (number) | the amount a subscriber pays for each data upload |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "oraclescreate", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "oraclesregister", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-5" + }, + { + "text": "oracleslist", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oracleslist" + }, + { + "text": "oracleslist", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oracleslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oracleslist" + }, + { + "text": "oracleslist", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oracleslist" + }, + { + "text": " method lists all available oracle contracts on the Smart Chain.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oracleslist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------------------ |\n| oracletxid | (array of strings) | the unique identifying oracletxid(s) |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-6" + }, + { + "text": "oraclesregister", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "oraclesregister oracletxid datafee", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "A user executes the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " method to register as a data publisher for an existing oracle contract.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "datafee", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " property is set in satoshis, and should be ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": ">=", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " the chain's default transaction fee.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "./komodo-cli -ac_name=YOURNAME getrawmempool", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " to verify the transaction\nis confirmed.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "After the transaction confirms, use ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": " to output registration\ninformation about your oracles plan", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclesregister" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ------------------------------------------------------------------------------------------- |\n| oracletxid | (string) | the unique identifying transaction id of the oracle |\n| datafee | (numbers) | the fee required of a subscriber for each data point the publisher publishes in this oracle |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Step 1: Set your parameters to create a raw transaction and get the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Step 2: Send/broadcast the raw transaction hex", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-7" + }, + { + "text": "oraclessamples", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "oraclessamples oracletxid baton num", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "oraclessample", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": " method fetches data samples from a publisher.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "The user indicates the desired publisher by inserting the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "batonutxo", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": " by the publisher. Use ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": " to find a list of publishers and their current batonutxo's.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "oraclesinfo", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclessamples" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ------------------------------------------------------------------ |\n| oracletxid | (string) | the unique identifying transaction id of the oracle contract |\n| batonaddress | (string) | the baton address, which can be found using the oraclesinfo method |\n| num | (number) | the number of sample data points required |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | ----------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| samples: | (array of strings) | |\n| \"XXXXXXXXXXX\" | (string) | a sample data point |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-8" + }, + { + "text": "oraclessubscribe", + "tagName": "h2", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "oraclessubscribe oracletxid publisher amount", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "The user executes ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " to subscribe to a publisher of an oracle plan.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "Every publisher must have at least one subscriber before the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "oraclesdata", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " can successfully execute.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "oraclesdata", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " method then returns a unique txid, also called the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "oraclesubscriptiontxid", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": ", or the id of the oracle subscription transaction. This can be used for further development purposes.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "If the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "datafee", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " is 10 COINS and the ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": " submitted is 1000 COINS, the\npublisher can publish data 100 times based on this amount.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "oraclessubscribe" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |\n| oracletxid | (string) | the unique identifying transaction id of the oracle |\n| publisher | (string) | the unique publisher id, which can be found using the oraclesinfo method |\n| amount | (number) | the total amount of funds the subscriber commits to pay for data upload by the publisher; this amount is immediately withdrawn from the user's wallet |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/oracles", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Step 1: Subscribe to an oracle plan and get the hex value:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Step 2: Send raw transaction / broadcast the hex value", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/oracles", + "closestElementReference": "examples-9" + } + ], + "antara/api/payments": [ + { + "text": "Payments", + "tagName": "h1", + "path": "antara/api/payments", + "closestElementReference": "payments" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "introduction" + }, + { + "text": "The Payments Module allows a payment to be distributed between multiple recipients in a pre-defined proportion.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "introduction" + }, + { + "text": "Payments Module Flow", + "tagName": "h3", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Use ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentstxidopret", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " to create as many transactions as there are recipients", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Each recipient must have the following data in the associated transaction's opreturn. This step makes the data available on the blockchain so that the data can be used by a later method", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Weight (also called \"share\")", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Recipient", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Destopret (optional)", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "This data is stored in the OP_RETURN of the subsequent payment transaction", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The transaction id is called ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paytxnid", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " and it is used as a reference to the data", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentstxidopret", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Each recipient must have the following data in the associated transaction's opreturn. This step makes the data available on the blockchain so that the data can be used by a later method", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Weight (also called \"share\")", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Recipient", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Destopret (optional)", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "This data is stored in the OP_RETURN of the subsequent payment transaction", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Weight (also called \"share\")", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Recipient", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Destopret (optional)", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "This data is stored in the OP_RETURN of the subsequent payment transaction", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "This data is stored in the OP_RETURN of the subsequent payment transaction", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The transaction id is called ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paytxnid", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " and it is used as a reference to the data", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Use ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentscreate", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " to create a new Payment plan", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The arguments passed include the following", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The number of blocks to lock the funds after funding", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The minimum release amount", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paytxnids", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "These contains data about the recipients and their corresponding shares", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The returned transaction id is called ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "createtxid", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " and it will be the reference for this payment plan used by other methods", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentscreate", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The arguments passed include the following", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The number of blocks to lock the funds after funding", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The minimum release amount", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paytxnids", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "These contains data about the recipients and their corresponding shares", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The number of blocks to lock the funds after funding", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The minimum release amount", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paytxnids", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "These contains data about the recipients and their corresponding shares", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "These contains data about the recipients and their corresponding shares", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "The returned transaction id is called ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "createtxid", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " and it will be the reference for this payment plan used by other methods", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Use ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentsfund", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " to fund any existing Payments plan", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentsfund", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "Use ", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentsrelease", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": " to release payments of a Payments plan", + "tagName": "li", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentsrelease", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "payments-module-flow" + }, + { + "text": "paymentscreate", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": "paymentscreate '[lockedblocks,minamount,\"paytxid\",...,\"paytxidN\"]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": "paymentscreate", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": " method after receiving the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": "paytxids", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": " from all the recipients to create a new instance of the Payments plan.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentscreate" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| lockedblocks | (number) | the number of confirmations the \"Payments create transaction\" of a plan must receive on the network before the plan's funds can be released |\n| minamount | (number) | the minimum amount of funds that can be released |\n| \"paytxid\" | (string, accepts multiple) | the transaction ids of all transactions created using the preceding ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments" + }, + { + "text": "paymentstxidopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments" + }, + { + "text": " method |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------- |\n| hex | (string) | the transaction in raw format, provided in hexadecimal |\n| txid | (string) | the transaction id of the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": "paymentscreate", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": " transaction, called the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": "createtxid", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": " |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "paymentsfund", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentsfund" + }, + { + "text": "paymentsfund '[“createtxid\", amount(, useopret)]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsfund" + }, + { + "text": "paymentsfund", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsfund" + }, + { + "text": " method is used to add funds to a Payments plan that has been created.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsfund" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| createtxid | (string) | The transaction id of the specific Payments plan the user desires to fund |\n| amount | (number) | The amount of funds to send |\n| useopret | (number) | A flag that instructs the Payments Module on where to send the funds. If ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": " (default), funds are sent to the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": " address corresponding to the specific Payments plan. If ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": ", funds are sent to the Payments Module's Global address |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------ |\n| hex | (string) | the transaction in raw format, provided in hexadecimal |\n| txid | (string) | the transaction id of the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-2" + }, + { + "text": "paymentsfund", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-2" + }, + { + "text": " transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-2" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-2" + }, + { + "text": "destopret (optional)", + "tagName": "h5", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "Data provided in ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "destopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": " is stored in the opreturn of the transaction that sends funds to the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "If the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": " belongs to an Antara Module that expects opreturn data, this data must be provided using ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "destopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "For example, if a Payments plan sends a portion of funds to an instance of the Rewards Antara Module, the Payments transaction must add data to the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "destopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": " to specify the specific instance of the Rewards plan.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "destopret-optional" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-3" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-3" + }, + { + "text": "paymentsinfo", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": "paymentsinfo '[\"createtxid\"]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": "paymentsinfo", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": " method returns relevant information about the Payments plan referred by the provided ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": "createtxid", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": " .", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ---------------------------------------------------------------------------- |\n| createtxid | (string) | the transaction id of the specific Payments plan the user desires to inspect |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------------------------- | ---------------- | ----------------------------------------------------------------------------------- |\n| plan_type | (string) | the type of the plan |\n| lockedblocks | (number) | the number of blocks the funding to this Payment plan is locked |\n| totalallocations | (number) | sum of the allocation numbers of all the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "paytxnids", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " |\n| minrelease | (number) | the miminum amount of funds locked that can be released |\n| numoprets | (number) | number of ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "s (can be ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": ") |\n| txidoprets | (array of jsons) | an array containing ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "paytxnids", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " and their ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "scriptPubkeys", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " |\n| txid | (string) | the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "paytxnid", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " of one of the recipients |\n| scriptPubKey | (string) | the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " corresponding to the above ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "paytxnid", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " |\n| RDjEATVvJm8ff2rEYq6yRmzQEuL4mZtF2r | (number) | the amount of funds stored in the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": " address corresponding to this Payment plan |\n| utxos | (number) | the number of utxos belonging to the above address |\n| REpyKi7avsVduqZ3eimncK4uKqSArLTGGK | (number) | the amount of funds stored in the Payments modules's Global address |\n| utxos | (number) | the number of utxos belonging to the above address |\n| totalfunds | (number) | the total amount of funds available |\n| elegiblefunds | (number) | the total amount of funds eleigible to be released |\n| min_release_height | (number) | the block height after which atleast some of the funds can be released |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-4" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-4" + }, + { + "text": "paymentslist", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": "paymentslist", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": "paymentslist", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": " method lists all Payment plan ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": "createtxids", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": " that are active on the Smart Chain.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentslist" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | -------------------------------------------------------------- |\n| result | (string) | whether the call executed successfully |\n| createtxids | (array) | the txids of all the Payments plans created on the Smart chain |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-5" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-5" + }, + { + "text": "paymentsmerge", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "paymentsmerge '[“createtxid\"]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "paymentsmerge", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " method merges funds into a single ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "utxo.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "utxo.", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "The funds merged can be either the funds currently in the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " address, or the funds can be the funds in the Payments Module's Global Address.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "Merged funds cannot be merged again for a period of time after the merger. The time required depends on the value set in the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "lockedblocks", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " argument when the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "paymentscreate", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " method was executed. The period of time in which the funds cannot be merged is ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "lockedblocks + 100", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": ". This prevents the user from merging the funds a second time before the funds can be released from the first merger.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "The size of a ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "paymentsrelease", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " transaction is bound by the normal rules of consensus, and therefore the number of inputs that can be provided as arguments is limited. If the number of inputs is too high, the consensus mechanism will reject the transaction when it is broadcast to the network. In this event, simply split the inputs between multiple ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "paymentsrelease", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": " transactions as necessary.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsmerge" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | --------------------------------------------------------------------------------------- |\n| createtxid | (string) | the transaction id of the specific Payments plan whose inputs the user desires to merge |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------ |\n| hex | (string) | the transaction in raw format, provided in hexadecimal |\n| txid | (string) | the transaction id of the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-5" + }, + { + "text": "paymentsmerge", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-5" + }, + { + "text": " transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-6" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-6" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-4" + }, + { + "text": "paymentsrelease", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "paymentsrelease '[“createtxid\",amount,(skipminimum)]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "paymentsrelease", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": " method can be executed by anyone to release the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "eligible", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": " payments of the given ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "createtxid", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": " Payments plan. The funds specified by ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": " are distributed among all the recipients of the Payments plan in predefined proportions.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsrelease" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| createtxid | (string) | the transaction id of the specific Payments plan whose payments the user desires to release |\n| amount | (number) | the amount of funds to release; this value must be higher than the minimum-amount requirement originally set in the plan |\n| skipminimum | (number) | a flag; if there are recipients whose share is below the dust threshold (", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "10,000 sats", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "), setting this flag to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": " will skip payments to them. In the case of a plan created using ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "paymentsairdrop", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": ", the threshold is ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "mintoaddress", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": " if it is greated than ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "10,000 sats", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "paymentsairdrop", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ----------------------------------------------------------------------- |\n| numoprets | (number) | number of ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "s (can be ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": ") |\n| amount | (number) | the amount that is being released |\n| newamount | (number) | the amount that is being released; corrected in case of rounding errors |\n| hex | (string) | the transaction in raw format, provided in hexadecimal |\n| txid | (string) | the transaction id of the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "paymentsrelease", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": " transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-7" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-7" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "TODO: Docs for this method are incomplete, but existing links point to it and make it fail linting. This comment is here to try and prevent that.\nWe need a response example and a description of the response data.\npaymentsairdrop and payments_airdroptokens need review and completion", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-5" + }, + { + "text": "paymentsairdrop", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "paymentsairdrop '[lockedblocks, minamount, mintoaddress, top, bottom, fixedFlag, \"excludeAddress\", ... , \"excludeAddressN\"]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "paymentsairdrop", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": " method allows the creation of a special Payments plan that rewards a certain range of addresses on the Smart Chain based on the specific criteria set by the arguments.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "The paymentsairdrop RPC requires the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "-ac_snapshot", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": " to be active.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "-ac_snapshot", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "paymentsairdrop" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| lockedblocks | (number) | the number of confirmations the \"Payments create transaction\" of a plan must receive on the network before the plan's funds can be released |\n| minamount | (number) | the minimum amount of funds that can be released |\n| mintoaddress | (number) | the minimum amount that can be paid to an address setting this value to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " defaults to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " satoshis |\n| top | (number) | having sorted into an array all known addresses by their value from least (top) to greatest (bottom), this ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "top", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " value sets the index number of the lowest-value address that should receive a portion of the airdrop; this value must not be equal to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " nor over ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "3999", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " |\n| bottom | (number) | having sorted into an array all known addresses by their value from least (top) to greatest (bottom), this ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "bottom", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": " value sets the index number of the highest-value address that should receive a portion of the airdrop; this value is normally set to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": ", unless the airdrop issuer desires to exclude rich members from the airdrop |\n| fixedFlag | (string) | set to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": ": all receiving addresses in the rich list are paid based on their balance. Set to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": ": the amount paid is fixed and split evenly over all receiving addresses. Set to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "7", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": ": activates a \"game mode\" that changes the values of the bottom and top index numbers based on the block hash of the block in which the daily airdrop was taken. |\n| \"excludeAddress\" | (string, accepts multiple) | any address included as an excludeAddress is ommitted from the airdrop |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ---- | ---- | ----------- |\n| ( ) | | |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-7" + }, + { + "text": "payments_airdroptokens", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": "payments_airdroptokens '[“tokenid\", lockedblocks, minamount, mintoaddress, top, bottom, fixedFlag, \"excludePubKey\", ... , \"excludePubKeyN\"]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": "The payments_airdroptokens method is still in development. Please inquire on ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": " for more details.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "payments-airdroptokens" + }, + { + "text": "paymentstxidopret", + "tagName": "h2", + "path": "antara/api/payments", + "closestElementReference": "paymentstxidopret" + }, + { + "text": "paymentstxidopret '[allocation, \"scriptPubKey\", (\"destopret\")]'", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentstxidopret" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentstxidopret" + }, + { + "text": "paymentstxidopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentstxidopret" + }, + { + "text": " method to create a transaction for each intended recipient of a Payments plan.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "paymentstxidopret" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------ | -------------------------------------------------------------------------------------------- |\n| allocation | (number) | defines the share of a payment to the given ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": " |\n| scriptPubKey | (string) | ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": " of the recipient |\n| destopret | (string, optional) | data to be stored in the OP_RETURN of the transaction that sends funds to the scriptPubkey. |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": "scriptPubkey", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | --------------------------------------------------------- |\n| hex | (string) | the transaction in raw format, provided in hexadecimal |\n| txid | (string) | the transaction id of the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-8" + }, + { + "text": "paymentstxidopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-8" + }, + { + "text": " transaction |\n| result | (string) | whether the call executed successfully |", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "response-8" + }, + { + "text": "Additional Details", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "additional-details" + }, + { + "text": "allocation", + "tagName": "h5", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "Recall that ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "allocation", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " is the number that defines the share of a payment to the given ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "For example, if a Payments plan has the allocation to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " as the number ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "n1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " and allocation to ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " as the number ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "n2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": ", then any funds sent to this payment plan are split between ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " in the ratio ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "n1:n2", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "If funds sent to the Payments plan has the value N, ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " will receive ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "(N*n1)/(n1+n2)", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey_1", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": " will receive ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "(N*n2)/(n1+n2)", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "allocation" + }, + { + "text": "scriptPubkey", + "tagName": "h5", + "path": "antara/api/payments", + "closestElementReference": "script-pubkey" + }, + { + "text": "Recall that ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "script-pubkey" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "script-pubkey" + }, + { + "text": " is the puzzle that locks coins in a transaction.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "script-pubkey" + }, + { + "text": "Pubkey Mutation", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "If the recipient is a normal pubkey, the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": " can be constructed by sandwiching the pubkey between the strings ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "\"21\"", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "\"ac\"", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": ". In this case, the private key corresponding to the pubkey can be used to sign a transaction that unlocks the coins.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "scriptPubkey", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": " parameter can belong to any valid type described ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "in this linked list", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": ". This list is not exhaustive of all types available to a valid ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": " parameter; please inquire with our developers for more details, if necessary.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "in this linked list", + "tagName": "a", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "For example, given the pubkey ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "02d3431950c2f0f9654217b6ce3d44468d3a9ca7255741767fdeee7c5ec6b47567", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": ", the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": " will be ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "2102d3431950c2f0f9654217b6ce3d44468d3a9ca7255741767fdeee7c5ec6b47567ac", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "pubkey-mutation" + }, + { + "text": "Address Substitution", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "The node that executes the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "paymentstxidopret", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " RPC can replace the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " with a normal base58 encoded address, so long as the node has the address's associated private key in the node's local wallet.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "For example, the address ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "RN727JeeiZ6NXic7PUKTCiHT1HvuBN4RDa", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " can be used in place of a ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " without any modifications by a node which has access to the corresponding private key.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " RPC can be used to verify that an address belongs to the node.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " RPC can also verify that the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " on which the base58 encoded address is based is also the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " associated with the relevant ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "Therefore, using either ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "RN727JeeiZ6NXic7PUKTCiHT1HvuBN4RDa", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "2102d3431950c2f0f9654217b6ce3d44468d3a9ca7255741767fdeee7c5ec6b47567ac", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " as the ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": " argument is equivalent.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "address-substitution" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/payments", + "closestElementReference": "examples-8" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "command-9" + }, + { + "text": "Broadcast the transaction", + "tagName": "h6", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/payments", + "closestElementReference": "broadcast-the-transaction-6" + } + ], + "antara/api/pegs": [ + { + "text": "Pegs", + "tagName": "h1", + "path": "antara/api/pegs", + "closestElementReference": "pegs" + }, + { + "text": "The Pegs Antara Module is in the final stages of production. The specifics of the implementation are also subject to change. Please reach out to the Komodo team for consultation before attempting to use this module in a production environment.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegs" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "The Pegs Antara Module is a mechanism for creating a decentralized ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "stablecoin.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "stablecoin.", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "A stablecoin is a cryptocurrency that has a financial value that is \"pegged\" to another asset. Stablecoins can be used in a Smart Chain environment to allow users to buy, sell, and trade with on-chain assets that mimic off-chain prices.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "For example, a stablecoin can be pegged to a common fiat currency, such as USD or EUR. The stablecoin can also mimic stocks, external cryptocurrencies, and other assets, so long as reliable price-data can be accessed through an online application programming interface (API).", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "introduction" + }, + { + "text": "Module Methodology", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "module-methodology" + }, + { + "text": "Associated Modules", + "tagName": "h5", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The Pegs Antara Module requires interactivity with several additional Antara Modules, including the following:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Gateways", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module acts as a bridge between the Smart Chain where Pegs is active and an external cryptocurrency", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The external cryptocurrency must be based on the Bitcoin protocol", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Typically, this external Smart Chain features a coin, such as KMD, that is tradeable in many venues across the cryptocurrency industry", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "On the external cryptocurrency blockchain, a user sends cryptocurrency coins to a multisignature address that is controlled by the Gateways Module, which locks the coins against further spending for the duration of the usage of the Pegs Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "On the Pegs-related Smart Chain, the Gateways Module then issues to the user ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "tokens", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " that represent the value of the user's locked funds", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Gateways", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module acts as a bridge between the Smart Chain where Pegs is active and an external cryptocurrency", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The external cryptocurrency must be based on the Bitcoin protocol", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Typically, this external Smart Chain features a coin, such as KMD, that is tradeable in many venues across the cryptocurrency industry", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The external cryptocurrency must be based on the Bitcoin protocol", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Typically, this external Smart Chain features a coin, such as KMD, that is tradeable in many venues across the cryptocurrency industry", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "On the external cryptocurrency blockchain, a user sends cryptocurrency coins to a multisignature address that is controlled by the Gateways Module, which locks the coins against further spending for the duration of the usage of the Pegs Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "On the Pegs-related Smart Chain, the Gateways Module then issues to the user ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "tokens", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " that represent the value of the user's locked funds", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "tokens", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Tokens", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module provides the functionality necessary to manage a cryptocurrency-based token system in coordination with the Gateways Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "These tokens represent the (now locked) value of the external Bitcoin-protocol or Komodo-protocol based cryptocurrency", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "These tokens can be spent and traded as actual cryptocurrency; the user who returns them to the Gateways Module at a later time will unlock and receive the associated external funds", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Tokens", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module provides the functionality necessary to manage a cryptocurrency-based token system in coordination with the Gateways Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "These tokens represent the (now locked) value of the external Bitcoin-protocol or Komodo-protocol based cryptocurrency", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "These tokens can be spent and traded as actual cryptocurrency; the user who returns them to the Gateways Module at a later time will unlock and receive the associated external funds", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Oracles", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module uses an ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "oraclefeed", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " app to provide information to the Gateways Module about tokens a user deposits", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Oracles", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module uses an ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "oraclefeed", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " app to provide information to the Gateways Module about tokens a user deposits", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "oraclefeed", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Prices", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": " Module", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The Prices Module obtains data from a range of external sources (defined by a developer) and makes this information available on the Pegs Smart Chain", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module utilizes functionality from the Oracles Module to transfer the obtained data from the real world into the digital world", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The Prices Module is responsible for tracking the value of an external asset (including assets external to the Komodo ecosystem) for on-chain price mimicry", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Data from the Prices module becomes available for Smart Chain activity after a twenty-four hour delay", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Prices", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The Prices Module obtains data from a range of external sources (defined by a developer) and makes this information available on the Pegs Smart Chain", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "This module utilizes functionality from the Oracles Module to transfer the obtained data from the real world into the digital world", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "The Prices Module is responsible for tracking the value of an external asset (including assets external to the Komodo ecosystem) for on-chain price mimicry", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "Data from the Prices module becomes available for Smart Chain activity after a twenty-four hour delay", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "associated-modules" + }, + { + "text": "A Brief Explanation of Pegs Functionality", + "tagName": "h5", + "path": "antara/api/pegs", + "closestElementReference": "a-brief-explanation-of-pegs-functionality" + }, + { + "text": "There are several technical elements involved in the Pegs Antara Module that collaborate to create a stablecoin.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "a-brief-explanation-of-pegs-functionality" + }, + { + "text": "Creating a Tokenized Cryptocurrency to Back the Stablecoin", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "The first aspect relies on three different Antara Modules: ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Gateways,", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Tokens,", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Oracles.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Gateways,", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Tokens,", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Oracles.", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "On any cryptocurrency blockchain that is built on the Bitcoin protocol, such as ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": ", users send funds to a multisignature address that is controlled by the Komodo-based Gateways Module that is active on this chain. The Gateways Module locks these funds against further spending at this time.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Once the funds are locked, the three modules together automatically make available to the user an equivalent number of tokens on the Pegs-related Smart Chain. These tokens represent the locked funds on a ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "1:1", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": " ratio at the satoshi level (each token represents one satoshi of the external coin).", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "As these tokens are ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "1:1", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": " representations of the locked funds, the value of these tokens does not change in respect to the associated funds. However, the cryptocurrency represented may not have a stable value.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-tokenized-cryptocurrency-to-back-the-stablecoin" + }, + { + "text": "Creating a Reliable Rate of Exchange Between the Stablecoin and the Backing Cryptocurrency", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "The second aspect relies on the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "Prices", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": " Antara Module.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "Prices", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "Before the user can exchange their tokens for a stablecoin, the Smart Chain must be able to determine the stablecoin's projected market value (such as the market value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "USD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "Using data provided by a wide range of online application programming interfaces (APIs), which can be manually determined by a developer, these two modules create a stable rate of exchange between the user's tokens and the pegged stablecoin.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "creating-a-reliable-rate-of-exchange-between-the-stablecoin-and-the-backing-cryptocurrency" + }, + { + "text": "Offering the Exchange Between Stablecoin and Backing Cryptocurrency", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "With these two elements (the user's tokens and a rate of exchange) the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "Pegs Antara Module", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": " is now able to offer a stablecoin.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "The user sends their tokens (such as tokenized ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": ") to the Pegs Module, which locks the tokens against further spending for the duration of Pegs usage.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "Once the funds are locked, the Pegs Module creates native coins on the Pegs-related Smart Chain and issues these new coins to the user. The exchange rate between the user's deposited tokens and the native Smart Chain coins is determined by the data-driven rate of exchange.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "The user may only withdraw up to ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": " of the current financial value of the locked external cryptocurrency funds. The other ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "20%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": " is held as a collateralized loan, available to assist in maintaining the stablecoin's value, if necessary.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "In this manner, the native Smart Chain coins become the intended stablecoin.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "offering-the-exchange-between-stablecoin-and-backing-cryptocurrency" + }, + { + "text": "Managing Price Volatility", + "tagName": "h5", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "As time progresses, the difference in price between the user's tokenized cryptocurrency and the stablecoin will change. Consider for example that the user is using ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": " as the deposited cryptocurrency to access a stablecoin that mimics the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "USD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": " fiat currency. The stablecoin in this example is named ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "The rules of liquidation found below are applicable only when the \"global-debt ratio\" — the ratio of all user deposits and debts at current prices on the Smart Chain — is higher than ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "60%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "If the global-debt ratio is lower than ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "60%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": ", no accounts are in danger of liquidation, regardless of their individual debt ratio.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "managing-price-volatility" + }, + { + "text": "Value of Backing Cryptocurrency Increases", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "If the value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": " increases relative to ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "USD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": ", the user may withdraw additional ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": " coins from their Pegs account, until the total withdrawn ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": " amount is again equal to ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": " of the total value of the deposited ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": " tokens.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-increases" + }, + { + "text": "Value of Backing Cryptocurrency Decreases", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "On the other hand, if the value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": " decreases relative to ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "USD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": ", the remaining amount of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": " tokens in the user’s account are subject to liquidation.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "There are two stages to account liquidation: \"yellow zone\" and \"red zone.\"", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "value-of-backing-cryptocurrency-decreases" + }, + { + "text": "Yellow Zone", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "The yellow zone applies to accounts where the user has withdrawn a value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " (also called \"debt\") that, due to price volatility, now exceeds the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " withdrawal limit, but is not yet at a level of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "In this circumstance, a third-party user on the Pegs-related Smart Chain may deposit ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " coins on behalf of the indebted user's acccount, and receive the equivalent value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " tokens. These tokens are withdrawn from the indebted user's account.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " coins are burned, thus preserving the ratio of withdrawn ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " coins in sync with the global total value of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": " tokens deposited on the Pegs-related Smart Chain.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "yellow-zone" + }, + { + "text": "Red Zone", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "Should the debt of a user's account surpass the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " threshold, the account enters the red zone.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "Here, a third-party user can gain an immediate ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " rate of return by sending ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " coins to the Pegs Module to liquidate the indebted user's account. The third-party user must deposit ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " to cover the user's whole debt, valued at 90% of the indebted account's ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " tokens, according to current prices.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "In return, the liquidating user receives ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "95%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " of the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " tokens in the indebted user's account. These ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " tokens can be redeemed on the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " chain and, if sold at the current price, provide a ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " profit.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " coins sent by the liquidating user are burned.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "The remaining indebted user's ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": " tokens are donated to the Pegs Antara Module, where they continue to support the maintenance of a healthy backing coin vs stablecoin ratio (", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "KMD:USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "). In case the account debt was exactly 90% at the moment of liquidation, the remaining will be ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "The liquidated user still holds their USDK coins and can exchange them for KMD tokens from another account that is in the yellow zone.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "red-zone" + }, + { + "text": "Preventing Account Liquidation", + "tagName": "h6", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "To prevent account liquiditation, when the user who created the account detects that their account is approaching the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": " debt-ratio threshold, they have two options available.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "The depositor can return an amount of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": " coins that satisfies ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "100%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": " of the outstanding balance of their collateralized loan at current prices.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "Alternatively, the depositor can deposit more tokenized ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": " to their account at current prices until the user's debt/loan ratio is safely below the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": " threshold.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "preventing-account-liquidation" + }, + { + "text": "Pegs Antara Module Flow", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "The Smart Chain creator creates an instance of the Pegs Antara Module, called a \"Peg\", using the ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegscreate", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " API method.", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "Once created, the creator adds this new Peg creation's transaction id called the ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegstxid", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " to the Smart Chain's launch parameters using the ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "-earlytxid", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " parameter", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "Once created, the creator adds this new Peg creation's transaction id called the ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegstxid", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " to the Smart Chain's launch parameters using the ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "-earlytxid", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " parameter", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "With the Peg active on the Smart Chain, a user locks tokenized external cryptocurrency to the Pegs Module using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsfund", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsfund", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "The user can withdraw up to ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "80%", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " of the value of their locked tokens in the form of the Smart Chain's coins using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsget", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsget", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "At anytime, the user can redeem the locked tokenized external cryptocurrency by repaying the Smart Chain's coins using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsredeem", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsredeem", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user can retrieve the current information about their Pegs account using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsaccountinfo", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsaccountinfo", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user can retrieve all past actions related to their Pegs account using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsaccounthistory", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsaccounthistory", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user can retrieve current information about the Peg using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsinfo", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsinfo", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user that has not yet created an account can exchange native coins of the Smart Chain for deposited tokens belonging to another user's account where the debt ratio is in the \"yellow zone\", ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "80%", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " to ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "90%", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": ", using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsexchange", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsexchange", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user can retrieve information about accounts that have a debt ratio in the \"red zone\", ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "+90%", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": ", using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsworstaccounts", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsworstaccounts", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "A user can liquidate the \"red zone\" account of another user, receiving ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " tokens in return according to the current price, as well as a ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "5%", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": " additional profit, using ", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsliquidate", + "tagName": "li", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "pegsliquidate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegs-antara-module-flow" + }, + { + "text": "Tutorial Availability", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "The Antara Tutorials section features full walkthroughs for the Pegs Module.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to the user side of the Pegs Module Tutorial", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to the user side of the Pegs Module Tutorial", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to the creator side of the Pegs Module Tutorial", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Link to the creator side of the Pegs Module Tutorial", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "tutorial-availability" + }, + { + "text": "pegsaccounthistory", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "pegsaccounthistory pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "pegsaccounthistory", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": " method returns all the past actions related to the Pegs account of the user who executes the method.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "The method relies on ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "the pubkey address provided by the user when launching the daemon", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": " to determine the Pegs account for which the method will retrieve data.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "the pubkey address provided by the user when launching the daemon", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccounthistory" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments" + }, + { + "text": " method at the creation of the on-chain Peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------------- | ----------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"name\" | (string) | the name of the method |\n| \"account history\" | (array of json) | an array containing json data that describe the past actions related to the user's Pegs account |\n| \"action\" | (string) | the name of the past action |\n| \"amount\" | (number) | the amount of satoshis involved |\n| \"accounttxid\" | (string) | the transaction id of the action |\n| \"token\" | (string) | the name of the token involved |\n| \"deposit\" | (number) | the amount of initial satoshis deposited |\n| \"debt\" | (string) | the total amount of debt after the associated action |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples" + }, + { + "text": "pegsaccountinfo", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "pegsaccountinfo pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "pegsaccountinfo", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": " method returns the current information of the Pegs account belonging to the user who executes the method.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "The method relies on ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "the pubkey provided by the user when launching the daemon", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": " to determine the account for which the method will retrieve data.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "the pubkey provided by the user when launching the daemon", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegsaccountinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-2" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-2" + }, + { + "text": " method at the creation of the on-chain Peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-2" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| -------------- | --------------- | ------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"name\" | (string) | the name of the method |\n| \"account info\" | (array of json) | an array containing json data that describe the user's Pegs account |\n| \"token\" | (string) | the name of the token involved |\n| \"deposit\" | (number) | the amount of initial satoshis deposited |\n| \"debt\" | (string) | the total amount of current debt |\n| \"ratio\" | (string) | the debt ratio based on the current price |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-2" + }, + { + "text": "pegsaddress", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": "pegsaddress [pubkey]", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": "pegsaddress", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": " method returns information about the Pegs module and associated addresses.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": "Optionally, if a pubkey is supplied, this method also returns the corresponding Pegs CC Address and balance.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ----------------------------------------- |\n| pubkey | (string, optional) | the pubkey of another user on the network |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"PegsCCAddress\" | (string) | taking the contract's EVAL code as a modifier, this is the public address that corresponds to the contract's privkey |\n| \"PegsCCBalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "PegsCCAddress", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": " |\n| \"PegsNormalAddress\" | (string) | the unmodified public address generated from the contract's privkey |\n| \"PegsNormalBalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "PegsNormalAddress", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": " |\n| \"PegsCCTokensAddress\" | (string) | the public address where Tokens are locked in the Pegs module |\n| \"PubkeyCCaddress(Pegs)\" | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey supplied as an argument |\n| \"PubkeyCCbalance(Pegs)\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "PubkeyCCaddress(Pegs)", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": " |\n| \"myCCAddress(Pegs)\" | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| \"myCCbalance(Pegs)\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "myCCAddress(Pegs)", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": " |\n| \"myaddress\" | (string) | the public address of the pubkey used to launch the chain |\n| \"mybalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "myaddress", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-3" + }, + { + "text": "pegscreate", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "pegscreate amount N bindtxid1 [bindtxid2 ...]", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " method creates an on-chain Peg, associating the value of the Smart Chain's pegged stablecoin with the value of a foreign asset.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The creation of this peg requires a tokenized backing cryptocurrency. Any cryptocurrency that is based on the Bitcoin protocol can fulfill this role, including ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "BTC", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": ". There can be more than one such supporting cryptocurrency on any stablecoin Smart Chain.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " parameter is the number of coins to be added to the Pegs Module from the available balance in the wallet of the user who is creating the peg. Often, this is the same user who created the Smart Chain, and therefore this balance can be extracted from the Smart Chain's premined coins. The coins will be used for the transaction fees that the Pegs Module performs through automated behavior. The coins are also used for markers, which are transactions that send a very small amount of funds to a global address on the Pegs Module for record keeping purposes.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " parameter is the number of gateways to associate with the Pegs module. Each cryptocurrency asset that backs the Peg's stablecoin needs a unique gateway.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "bindtxidN", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " parameter is the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " of a gateway used to tokenize external cryptocurrencies.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The transction id of the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " transaction is called the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "Once the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " transaction is confirmed, the Smart Chain daemon should be stopped and started again with the parameter ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "-earlytxid=pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " added to the launch command. This ensures that it is the only Peg active on the Smart Chain.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "-earlytxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": " parameter can be added to the launch parameters only before the 100th block.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "For more information, see the following linked tutorial.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "Link to the creator side of the Pegs Module Tutorial", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "Link to the creator side of the Pegs Module Tutorial", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegscreate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------- | ---------------------------------------------------------------------------- |\n| amount | (number) | the number of coins to be added |\n| N | (number) | the number of gateways to associate with the Pegs module |\n| bindtxid1 | (string) | the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-4" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-4" + }, + { + "text": " of a gateway used to tokenize external cryptocurrencies |\n| [bindtxid2 ...] | (strings, optional) | same as above; used when more than one external cryptocurrency backs the Peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "Broadcast the hex:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "The above string is the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": " that represents the Peg.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-4" + }, + { + "text": "pegsexchange", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "pegsexchange pegstxid tokenid amount", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "pegsexchange", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": " method exchanges native coins for deposited tokens. This method is intended for users that do not have a Pegs account associated with the pubkey used to launch their daemon.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "Users that have an account may use the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "pegsreedem", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": " method to exchange coins for tokens.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "pegsreedem", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "To supply the user that executes the method with tokens, this method sends the user's coins to pay the debt of another user whose account is in the \"yellow zone\" (a debt ratio between ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": " based on current prices). This improves the debt ratio of the indebted user, thus forestalling liquidation of the indebted user's account.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsexchange" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-5" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-5" + }, + { + "text": " method at the creation of the on-chain Peg |\n| tokenid | (string) | the tokenid of the tokenized cryptocurrency backing the peg |\n| amount | (amount) | the amount of coins to exchange |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-5" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-5" + }, + { + "text": "pegsfund", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": "pegsfund pegstxid tokenid amount", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": "pegsfund", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": " method allows a user to lock the given ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": " of a tokenized cryptocurrency in the Pegs module. The action of locking the tokenized cryptocurrency creates a Pegs account for this user.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsfund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-6" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-6" + }, + { + "text": " method at the creation of the on-chain Peg |\n| tokenid | (string) | the tokenid of the tokenized cryptocurrency backing the peg |\n| amount | (amount) | the amount of the tokenized cryptocurrency to be locked in the Pegs account |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-6" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "Broadcast the hex:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "The above string is the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "accounttxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": " of the user.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-6" + }, + { + "text": "pegsget", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "pegsget pegstxid tokenid amount", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "pegsget", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": " method allows a user to withdraw (also called \"assume a debt\") in native coins up to ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": " of the value of the locked tokens (also called \"collateral\") in their account.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "The exchange of value from tokens to native coins is calculated according to the current price data available on the Smart Chain at the time of the transaction.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsget" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-7" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-7" + }, + { + "text": " method at the creation of the on-chain Peg |\n| tokenid | (string) | the tokenid of the tokenized cryptocurrency backing the peg |\n| amount | (amount) | the amount of the native coins to receive from the Pegs module |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-7" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-7" + }, + { + "text": "pegsinfo", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": "pegsinfo pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": "pegsinfo", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": " method returns the current information about the indicated ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": " Peg.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-8" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-8" + }, + { + "text": " method at the creation of the on-chain Peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-8" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------ | --------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"name\" | (string) | the name of the method |\n| \"info\" | (json array) | the current information about the given Peg |\n| \"token\" | (string) | the name of the token |\n| \"total deposit\" | (amount) | the total number of tokens deposited |\n| \"total debt\" | (amount) | the total number of satoshis of the native coin withdrawn |\n| \"total ratio\" | (string) | the total debt ratio for the above token based on the current price |\n| \"global ratio\" | (string) | the global debt ratio for all tokens backing the Peg, based on the current prices |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-8" + }, + { + "text": "pegsliquidate", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "pegsliquidate pegstxid tokenid accounttxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "pegsliquidate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": " method allows a user to liquidate the account of another user if their debt ratio is in \"red zone\" (greater than ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": ") for the given ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": " token.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "In return, the liquidating user can receive an immediate profit of ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": ", in tokens, taken from the liquidated user's remaining balance.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "Any remaining value in the liquidated user's account is immediately distributed to the Pegs Antara Module for global stablecoin price and supply management.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsliquidate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": " method at the creation of the on-chain Peg |\n| tokenid | (string) | the tokenid of the tokenized cryptocurrency backing the peg |\n| accounttxid | (string) | the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": "accounttxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": " of another user whose account is in the \"red zone\" |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-9" + }, + { + "text": "pegsredeem", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": "pegsredeem pegstxid tokenid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": "pegsredeem", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": " method allows a user to withdraw their deposited tokenized cryptocurrency by repaying their entire debt.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": "The user provides payment in the native coin of the Smart Chain.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsredeem" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-10" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-10" + }, + { + "text": " method at the creation of the on-chain Peg |\n| tokenid | (string) | the tokenid of the tokenized cryptocurrency backing the peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-10" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------- |\n| \"hex\" | (string) | the hex value to be broadcast |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/pegs", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "examples-10" + }, + { + "text": "pegsworstaccounts", + "tagName": "h2", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": "pegsworstaccounts pegstxid", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": "pegsworstaccounts", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": " method returns the information on the accounts that currently can be liquidated. An account can be liquidated if the account holder's total debt balance exceeds ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": " of the account value.", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "pegsworstaccounts" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/pegs", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| pegstxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-11" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-11" + }, + { + "text": " method at the creation of the on-chain Peg |", + "tagName": "p", + "path": "antara/api/pegs", + "closestElementReference": "arguments-11" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/api/pegs", + "closestElementReference": "arguments-11" + } + ], + "antara/api/prices": [ + { + "text": "Prices", + "tagName": "h1", + "path": "antara/api/prices", + "closestElementReference": "prices" + }, + { + "text": "Important Notice", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices" + }, + { + "text": "The Prices Antara Module is currently in development.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices" + }, + { + "text": "The specifics of the implementation are subject to change.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices" + }, + { + "text": "Please reach out to the Komodo team for more information before attempting to use this module in a production environment.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "The Prices Antara Module offers a decentralized and incentivized margin-trading system on a Smart Chain. This allows users to open long and short leveraged positions against the \"House\" (the module itself).", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "A player opens a position with the desired betting amount and leverage. They can close the position anytime and receive the current equity that is in a non-negative state.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "When the debt ratio of a player is close to exceeding the allowed limits, other players on the network can liquidate the indebted player's account. The liquidating players thereby receive as an incentive a small percentage of the indebted player's holdings.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "For a more detailed explanation of the nature of \"leveraged positions\" and other terms related to margin trading, please read ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "this explanation section.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "this explanation section.", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "introduction" + }, + { + "text": "The Prices Modules Requires a Separate Technology Called a DTO", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "The creation of the Prices Antara Module required the existence of a separate Antara-based module that provides trustless and decentralized price feeds. The Komodo community named this separate type of module a \"Decentralized Trustless Oracle,\" or DTO for brevity.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "In order to create the trustless and decentralized price feeds, Komodo's DTO technology relies on ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "timestamp consensus rules", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "timestamp consensus rules", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "The DTO requires the miners of the Smart Chain to include the required off-chain data as a part of the OP_RETURN in the coinbase transaction (the transaction that pays the block reward to the miner).", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "The validation of the off-chain data is part of the consensus rules. If the data is false, the block is rejected by the network, which serves as an incentive for the miner to be truthful. To achieve consensus, all nodes allow for an error margin of approximately ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "1%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": " in the reported data.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "the-prices-modules-requires-a-separate-technology-called-a-dto" + }, + { + "text": "Manners of Obtaining Data", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "The Prices module retrieves prices of stocks and cryptocurrencies through the Antara Customization Parameters ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_stocks", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_prices", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": ", respectively.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_stocks", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_prices", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "The module can extract data from a web source that can be accessed using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "http/https", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": " protocols and return the data as a json object using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_feeds", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "ac_feeds", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "The module also has a pre-configured feed that always retrieves values for the pairs ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "BTC_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "BTC_EUR", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "BTC_GBP", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "The DTO provides the required price feed. For markets, such as ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "AMZN/KMD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": ", that do not exist in real life, the DTO offers ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "synthetic prices", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "synthetic prices", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "manners-of-obtaining-data" + }, + { + "text": "Manner of Preventing Miner Manipulation", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": "To counter the possibility of manipulation of price data by a miner (for example, a miner could attempt to take advantage of the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": "1%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": " error allowed to win an open bet), when a position is opened the price of purchase is not set until a twenty-four hour period has past. During this period, the module tracks the prices of the relevant currencies. At the end of the period, the module automatically sets the price of purchase for the position based on the price averages.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": "For long positions, the lock price (also called the \"cost basis\") is the maximum among averages; for short positions, the lock price is the minimum among averages.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": "Players should not expect high-speed trading in this type of system.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "manner-of-preventing-miner-manipulation" + }, + { + "text": "A Brief Explanation of Margin Trading (\"Leveraged Trading\")", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Assume Player X has ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$100", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD and is certain that Bitcoin (BTC) will soon have a large increase in value relative to USD.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "In this type of scenario, Player X can use margin trading to find a greater profit percentage than he would by simply buying ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$100", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD worth of BTC and holding it.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "However, margin trading increases the risk placed on Player X.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "If Player X simply buys his BTC and then sells it after its price increases by ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ", Player X's profit is ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ", or ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$5", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD. Similarly, the loss is ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$5", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD if the price decreases by ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "In a margin-trading system there are two roles: Lender and Trader.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "In the example here, Player X is the Trader.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Lender facilitates Trader in borrowing a multiple (\"leverage\") of the deposited collateral (", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$100", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "). Thereby the Trader can trade using the total amount (deposit + leverage).", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "For example, Player X desires to trade with a leverage of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "10", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ". This is ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$100 * 10 = $1000", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Lender gives Player X the remaining ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$900", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD. Player X now buys ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$1000", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD worth of BTC.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "If the price increases by ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " and Player X sells their BTC, the profit is ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$50", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Player X returns the loan of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$900", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " and is left with ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$150", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD, which amounts to a profit of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "50%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Alternatively, the price can drop and the Trader can lose higher amounts. In this example, the value of BTC relative to USD drops by ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Player X now only has ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$950", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD worth of BTC. Player X sells and returns the loan amount of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$900", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD, and has ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "$50", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " USD remaining.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "This is now a loss of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "50%", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "In many scenarios, a Lender has the ability to liquidate the Trader at any given time, and will force liquidation before the player can lose more than they are able to immediately repay.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "The following stop-loss values are common in margin trading:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "A ", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "10x", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " leverage can tolerate up to a ", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "10%", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " decrease in price before forced liquidation occurs", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "A ", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "100x", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " leverage can tolerate up to a ", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "1%", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": " decrease in price before forced liquidation occurs", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-brief-explanation-of-margin-trading-leveraged-trading" + }, + { + "text": "Summary of a Brief Explanation to Margin Trading", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "Assuming ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "$0", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": " fees, a player can calculate actual profit or loss percentage by the following formula.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "The Trader's \"position\" is the amount of coins the player places as a bet.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "The Trader's \"equity\" is the amount of coins the player can withdraw at the current moment. Equity is calculated by the following formula.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "\"Cost basis\" is the price at which the bet is opened.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "summary-of-a-brief-explanation-to-margin-trading" + }, + { + "text": "Synthetic Prices and Their Calculation", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "The Prices data on a Smart Chain is made available by an active Decentralized Trustless Oracle (DTO), which is comprised of all nodes and miners on the network.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "There are limitations to a DTO. For example, the DTO cannot offer price feeds for all possible markets across the world. Furthermore, users on the network may desire a trading pair that does not yet have a real market.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "In such cases, price data of two or more different pairs can be used to derive the price of a desired pair. The resulting price data is called a \"Synthetic Price.\"", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "For example, suppose the DTO for a Smart Chain does not supply the price data for the pair ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "AMZN/KMD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": ". However, the chain does supply the price data for the pairs ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "AMZN/USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "USD/BTC", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "BTC/KMD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "The synthetic price of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "AMZN/KMD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": " is available through considering the prices of all the three pairs.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-prices-and-their-calculation" + }, + { + "text": "A Forth-like Syntax for Synthetic Calculations", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "A simple syntax is offered in the Komodo API for calculating synthetic prices and use their value on the Smart Chain.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "This syntax is based on the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "Forth", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": " programming language.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "Forth", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "In calculating a synthetic price, the Komodo API supports up to three pairs of prices and offers four operations:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "invert(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "!", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "multiply(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "*", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "divide(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "/", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "These operations can be supplied with positive and negative integers. The integers allow the calculation of synthetic prices for baskets of assets or indexes. The negative integers can be used to short a price.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "For example, the synthetic price of a basket with ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "3/4", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": " parts BTC and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "1/4", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": " parts BCH can be calculated.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "a-forth-like-syntax-for-synthetic-calculations" + }, + { + "text": "Usage", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "The data in each price feed of the DTO has a key that appears in the structure of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "AAA_BBB", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": ". This is interpreted to mean that the price for the asset ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "AAA", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": " is provided in the data in terms of another asset ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "BBB", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "For example, the price of BTC in terms of USD is denoted by ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "BTC_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "usage" + }, + { + "text": "Understanding Stacks", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": "Understanding the concept of a stack is essential when using the Komodo API's syntax for calculating synthetic prices.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": "Stacks are dynamic data structures that follow the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": "Last In First Out (LIFO)", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": " principle. In other words, the last item to be inserted into a stack is the first one to be deleted from it.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": "For example, assume a stack of trays on a table. When a person adds another tray to the stack, they place the tray on top of the stack. When a person removes a tray from the stack, they remove the tray at the top of the stack. Therefore, the last item added to the stack is also the first item removed.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "understanding-stacks" + }, + { + "text": "Inserting and Deleting Elements", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "Stacks have restrictions on the insertion and deletion of elements.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "Elements can be inserted or deleted only from one end of the stack (the top). The element at the top is called the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "top", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": " element.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "The operations of inserting and deleting elements are called ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "push", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "pop", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": " respectively.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "When the top element of a stack is deleted, if the stack remains non-empty, the element just below the previous top element becomes the new top element of the stack.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "For example, in the stack of trays, if a person takes the tray from the top, the tray just below it automatically becomes the top element.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "Source: Hackerearth.com", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "Source: Hackerearth.com", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "inserting-and-deleting-elements" + }, + { + "text": "Komodo Stack API Symbols", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "The allowed symbols in the Komodo API's syntax are:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "prices", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "operations: invert(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "!", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "), multiply(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "*", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "), divide(", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "/", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "positive and negative integers", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "The interpretation of the symbols in all the possible cases is described in the subsequent sections.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "The Komodo API limits the depth of the stack for prices to three, as this appears to be reasonably sufficient data for calculating synthetic prices.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "komodo-stack-api-symbols" + }, + { + "text": "Synthetic Price Weights", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "A synthetic price is calculated by summing the computed prices with integers that represent ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "weights", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "weight", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": " can be any positive or negative integer whose absolute value is less than ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "2048", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "After an operator acts on the stack, a weight must be applied to the top element.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "If the synthetic price calculation does not require the inclusion of a weight, set the weight's integer value to ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "With the weights sets, the module automatically calculates the resulting synthetic price.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "synthetic-price-weights" + }, + { + "text": "Example", + "tagName": "h6", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "\"BTC_USD, 3, KMD_USD, 1\" gives the integer weight of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "3", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": " to the price pair of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "BTC_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": " and the integer weight of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": " to the price pair of ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "KMD_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": ". The resulting value is described as ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "BTC_USD*(3/4) + KMD_USD*(1/4)", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "A \"spread\" in trading is a term that describes the amount or distance between the values of the maximum amount at which a buyer is willing to purchase and the minimum amount at which a seller is willing to sell.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "To create a spread, use a negative weight for one of the synthetics.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "For example, \"BTC_USD, -2, KMD_USD, 1\" gives the spread: ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "KMD_USD - 2 * BTC_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": ". When ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "KMD_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": " gains 2x more than ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "BTC_USD", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": ", percentage wise, the spread would essentially disappear.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example" + }, + { + "text": "Operations Involving 1 Price", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-1-price" + }, + { + "text": "| Operator | Function |\n| ------------- | -------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-1-price" + }, + { + "text": "!", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-1-price" + }, + { + "text": " (inverse) | pops the top stack element, inverts it, and pushes it back on to the stack |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-1-price" + }, + { + "text": "Example", + "tagName": "h6", + "path": "antara/api/prices", + "closestElementReference": "example-2" + }, + { + "text": "\"BTC_USD, !, 1\" is computed to \"USD_BTC\".", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "example-2" + }, + { + "text": "Operations Involving 2 Prices", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": "| Operator | Function |\n| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": "*", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": " | pops two elements from the top of the stack, multiplies them, and pushes the result back on to the stack |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": " | pops two elements from the top of the stack, performs a division with the first element as the denominator and the second element as the numerator, and pushes the result back on to the stack |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-2-prices" + }, + { + "text": "Example", + "tagName": "h6", + "path": "antara/api/prices", + "closestElementReference": "example-3" + }, + { + "text": "\"BTC_USD, USD_JPY, *, 1\" is computed to \"BTC_JPY\"", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "example-3" + }, + { + "text": "\"BTC_EUR, BTC_USD, /, 1\" is computed to \"USD_EUR\"", + "tagName": "li", + "path": "antara/api/prices", + "closestElementReference": "example-3" + }, + { + "text": "Operations involving 3 prices", + "tagName": "h5", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "Each of these operators act on top of the stack in the order from left to right. It is possible that the value from an earlier computation rests at the top of the stack.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "| Operator | Function |\n| -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "*//", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": " | pops three elements from the top of the stack, inverts the last two out, multiplies them and pushes the result back on to the stack |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "**/", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": " | pops three elements from the top of the stack, inverts the last one out, multiplies them and pushes the result back on to the stack |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "***", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": " | pops three elements from the top of the stack, multiplies them, and pushes the result back on to the stack |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "///", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": " | pops three elements from the top of the stack, inverts all of them, multiplies them, and pushes the result back on to the stack |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "operations-involving-3-prices" + }, + { + "text": "mypriceslist", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "mypriceslist" + }, + { + "text": "mypriceslist [all|open|closed]", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "mypriceslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "mypriceslist" + }, + { + "text": "mypriceslist", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "mypriceslist" + }, + { + "text": " method returns the list of transaction ids (txid) of the bets executed on the Smart Chain from the executing user's pubkey. By default, the method returns both open and closed bets.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "mypriceslist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "\"all\\|open\\|closed\"", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": " | (string, optional) | the filter to apply to the list", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "all", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": " - lists all of the user's bets ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "open", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": " - lists the user's bets that are open", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "closed", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": " - lists the user's bets that are closed |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------ | -------------------------------------------------------------------------- |\n| Array | (array of strings) | an array containing the txid's of the bets that satisfy the applied filter |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples" + }, + { + "text": "prices", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "prices maxsamples", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "prices", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": " method returns samples of the data that has successfully been added to the Smart Chain via the price-feed oracles.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "The argument ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "maxsamples", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": " defines the maximum number of samples to display for each price.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "prices-2" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------- |\n| maxsamples | (number) | the maximum number of samples to list |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------------------------ | ------------------------------------------------------------------- |\n| \"firstheight\" | (number) | ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-2" + }, + { + "text": " |\n| \"timestamps\" | (array of numbers) | the unix timestamps at which the samples were collected |\n| \"pricefeeds\" | (array of jsons) | the unix timestamps at which the samples were collected |\n| \"name\" | (string) | the name (symbol) of the price |\n| \"prices\" | (array of arrays containing numbers) | the mined (actual received) price; correlated price; smoothed price |\n| \"result\" | (string) | whether the command executed successfully |\n| \"seed\" | (number) | |\n| \"height\" | (number) | |\n| \"maxsamples\" | (number) | the maximum number of samples displayed |\n| \"width\" | (number) | |\n| \"daywindow\" | (number) | |\n| \"numpricefeeds\" | (number) | the total number of price feeds available on the Smart Chain |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-2" + }, + { + "text": "pricesaddfunding", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "pricesaddfunding bettxid amount", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "pricesaddfunding", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": " method adds the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": " of funding from the user's wallet to the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": " bet.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "This can reduce the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": " owner's risk of liquidation.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddfunding" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ----------------------------------------------------------------------------------------------- |\n| bettxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-3" + }, + { + "text": "pricesbet", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-3" + }, + { + "text": " method |\n| amount | (number) | the amount of funding to be added to the bet |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-3" + }, + { + "text": "pricesbet", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ------------------------------------------------------------------------------------------- |\n| \"hex\" | (string) | the transaction in hex format; broadcast this value using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-3" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-3" + }, + { + "text": " method |\n| \"txid\" | (string) | the transaction id |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-3" + }, + { + "text": "pricesaddress", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": "pricesaddress [pubkey]", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": "pricesaddress", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": " method returns information about the local instance of the Antara Prices Module on the Smart Chain and about associated addresses.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": "Optionally, if a pubkey is supplied, this method also returns the corresponding Prices CC Address and balance.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ----------------------------------------- |\n| pubkey | (string, optional) | the pubkey of another user on the network |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |\n| \"result\" | (string) | whether the command executed successfully |\n| \"PricesCCAddress\" | (string) | taking the contract's EVAL code as a modifier, this is the public address that corresponds to the contract's privkey |\n| \"PricesCCBalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "PricesCCAddress", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": " |\n| \"PricesNormalAddress\" | (string) | the unmodified public address generated from the contract's privkey |\n| \"PricesNormalBalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "PricesNormalAddress", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": " |\n| \"PricesCCTokensAddress\" | (string) | the public address where Tokens are locked in the Prices module |\n| \"myCCAddress(Prices)\" | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| \"myCCbalance(Prices)\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "myCCAddress(Prices)", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": " |\n| \"myaddress\" | (string) | the public address of the pubkey used to launch the chain |\n| \"mybalance\" | (number) | the amount of funds in the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "myaddress", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": " |\n| \"myaddr\" | (string) | |\n| \"houseaddr\" | (string) | the public address of the House |\n| \"exposureaddr\" | (string) | |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-4" + }, + { + "text": "pricesbet", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "pricesbet amount leverage \"synthetic-expression\"", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "pricesbet", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": " method is used to open a bet.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "The resulting transaction id is called the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": " of this bet and is used in most of the subsequent RPC calls", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesbet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| -------------------- | -------- | ------------------------------------------------------------------------------------------------------ |\n| amount | (number) | the amount of the Smart Chain's native coin to bet |\n| leverage | (number) | the leverage to be used to open the bet; use positive integers for longs, negative integers for shorts |\n| synthetic-expression | (string) | the synthetic expression against which the bet is opened |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------- |\n| \"hex\" | (string) | the transaction in hex format; broadcast this value using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-5" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-5" + }, + { + "text": " method |\n| \"txid\" | (string) | the transaction id |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-5" + }, + { + "text": "pricescashout", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": "pricescashout bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": "pricescashout", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": " method can be used to cash out the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": " bet. At the moment this method is executed, the user's equity must be positive and the bet must be open and not rekt.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricescashout" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ----------------------------------------------------------------------------------------------- |\n| bettxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-6" + }, + { + "text": "pricesbet", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-6" + }, + { + "text": " method |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-6" + }, + { + "text": "pricesbet", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------------- | --------------------------------------------------------------------------------------------------------------------- |\n| bets | (array of json) | the bets that are open currently |\n| positionsize | (number) | the amount of native coin used to open the bet |\n| profits | (number) | the profits that can be actualized if the bet is closed at this moment; the value is negative if it is a loss |\n| costbasis | (number) | the price that has been locked in as the opening price of the bet |\n| firstheight | (number) | |\n| leverage | (number) | the leverage used to open the bet |\n| TotalPositionSize | (number) | the amount of native coin used to open all the bets |\n| TotalProfits | (number) | the total profits that can be actualized if the bets are closed at this moment; the value is negative if it is a loss |\n| equity | (number) | the amount of native Smart Chain coin that can be redeemed if the bet is cashed out at this moment |\n| LastPrice | (number) | the last known price |\n| LastHeight | (number) | the block height at which ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": "LastPrice", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": " was noted |\n| \"hex\" | (string) | the transaction in hex format; broadcast this value using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": " method |\n| \"txid\" | (string) | the transaction id |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-6" + }, + { + "text": "pricesgetorderbook", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesgetorderbook" + }, + { + "text": "pricesgetorderbook", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesgetorderbook" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesgetorderbook" + }, + { + "text": "pricesgetorderbook", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesgetorderbook" + }, + { + "text": " method shows the currently open bets and their details. The method also shows information about the house wallet's balance and statistics about the bets on the Smart Chain.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesgetorderbook" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | --------------- | -------------------------------------------------------------------------------------------------- |\n| Symbol of a Price | (string) | whether the command executed successfully |\n| positions | (array of json) | whether the command executed successfully |\n| isOpen | (number) | whether the bet is open; ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": " if false and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": " if true |\n| expression | (string) | the synthetic expression supplied by the user |\n| positionsize | (number) | the amount of native coin used to open the bet |\n| leverage | (number) | the leverage used to open the bet |\n| costbasis | (number) | the price that has been locked in as the opening price of the bet |\n| lastprice | (number) | the last known price |\n| equity | (number) | the amount of native Smart Chain coin that can be redeemed if the bet is cashed out at this moment |\n| isUpPosition | (number) | |\n| DiffLeveragedPosition | (number) | |\n| TotalFund | (number) | the total amount of the Smart Chain's coins available in the House's public address |\n| TotalEquity | (number) | the total amount of equity across all the bets |\n| TotalRekt | (number) | the total number of bets that are already rekt |\n| TotalBets | (number) | the total number of active bets |\n| TotalCashoutBets | (number) | the total number of bets that have been cashed out |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-7" + }, + { + "text": "pricesinfo", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": "pricesinfo bettxid [height]", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": "pricesinfo", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": " method returns information about the bet referred by the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": "bettxid", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": " bet.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------ | ----------------------------------------------------------------------------------------------- |\n| bettxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-8" + }, + { + "text": "pricesbet", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-8" + }, + { + "text": " method |\n| height | (number, optional) | the height at which the information about the bet is required |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-8" + }, + { + "text": "pricesbet", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| rekt | (number) | whether the bet is rekt; ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": " if false and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": " if true |\n| open | (number) | whether the bet is open; ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": " if false and ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": " if true |\n| expression | (string) | the synthetic expression supplied by the user |\n| reduced | (string) | the reduced synthetic expression derived from the one supplied by the user |\n| costbasis | (number) | the price that has been locked in as the opening price of the bet |\n| bets | (array of json) | the bets that are open currently |\n| positionsize | (number) | the amount of native coin used to open the bet |\n| profits | (number) | the profits that can be actualized if the bet is closed at this moment; the value is negative if the closing amount is a loss |\n| costbasis | (number) | the opening price of the bet; this value is locked for the duration of the bet |\n| firstheight | (number) | |\n| leverage | (number) | the leverage used to open the bet |\n| TotalPositionSize | (number) | the amount of native coin used to open all the bets |\n| TotalProfits | (number) | the total profits that can be actualized if the bets are closed at this moment; the value is negative if the amount is a loss |\n| equity | (number) | the amount of native Smart Chain coin that can be redeemed if the bet is cashed out at this moment |\n| LastPrice | (number) | the last known price |\n| LastHeight | (number) | the block height at which ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "LastPrice", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": " was noted |\n| LiquidationPrice | (number) | the price at which the bet will be eligible for liquidation |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-8" + }, + { + "text": "priceslist", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "priceslist" + }, + { + "text": "priceslist [all|open|closed]", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "priceslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "priceslist" + }, + { + "text": "priceslist", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "priceslist" + }, + { + "text": " method returns the list of transaction id's (txid) of all the bets executed on chain. The method returns both open and closed bets by default.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "priceslist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "\"all\\|open\\|closed\"", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": " | (string, optional) | the filter to apply to the list", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "all", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": " - lists all of the user's bets", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "open", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": " - lists the user's bets that are open", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "closed", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": " - lists the user's bets that are closed |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------ | -------------------------------------------------------------------------- |\n| Array | (array of strings) | An array containing the txid's of the bets that satisfy the applied filter |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-9" + }, + { + "text": "pricesrefillfund", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesrefillfund" + }, + { + "text": "pricesrefillfund amount", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrefillfund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrefillfund" + }, + { + "text": "pricesrefillfund", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrefillfund" + }, + { + "text": " method adds funds to the house (the Global CC address).", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrefillfund" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------- |\n| amount | (amount) | the amount of coins to be added to the House's public address |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ----------------------------------------------------------------------------------------- |\n| \"hex\" | (string) | the transaction in hex format; broadcast this value using the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-10" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-10" + }, + { + "text": " method |\n| \"txid\" | (string) | the transaction id |\n| \"result\" | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-10" + }, + { + "text": "pricesrekt", + "tagName": "h2", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "pricesrekt bettxid height", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "pricesrekt", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": " method creates a transaction that liquidates a bet that is \"rekt\" — a bet where the debt ratio has exceeded maximum limits and is now open to liquidation.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "A bet that is rekt has an ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "IsRekt: 1", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": " flag in its ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "pricesinfo", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": " call.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "pricesinfo", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "pricesrekt", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": " call requires some proof-of-work (PoW) activity from the machine of the executing user. This deters spamming.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "All nodes on the network are incentivised to execute this transaction as it rewards some of the liquidated funds to the node that created the rekt transaction.", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "pricesrekt" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------ | ----------------------------------------------------------------------------------------------- |\n| bettxid | (string) | the transaction id returned previously by the ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-11" + }, + { + "text": "pricesbet", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-11" + }, + { + "text": " method |\n| height | (number, optional) | the height at which the bet is rekt |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "arguments-11" + }, + { + "text": "pricesbet", + "tagName": "a", + "path": "antara/api/prices", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/prices", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| bets | (array of json) | the bets that are open currently |\n| positionsize | (number) | the amount of native coin used to open the bet |\n| profits | (number) | the profits that can be actualized if the bet is closed at this moment; the value is negative if the amount is a loss |\n| costbasis | (number) | the opening price of the bet |\n| firstheight | (number) | |\n| leverage | (number) | the leverage used to open the bet |\n| TotalPositionSize | (number) | the amount of native coin used to open all the bets |\n| TotalProfits | (number) | the total profits that can be actualized if the bets are closed at this moment; the value is negative if this amount is a loss |\n| equity | (number) | the amount of native Smart Chain coin that can be redeemed if the bet is cashed out at this moment |\n| LastPrice | (number) | the last known price |\n| LastHeight | (number) | the block height at which ", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-11" + }, + { + "text": "LastPrice", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-11" + }, + { + "text": " was noted |\n| \"result\" | (string) | whether the command executed successfully |\n| \"error\" | (string) | the error encountered |", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/prices", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/prices", + "closestElementReference": "examples-11" + } + ], + "antara/api/rewards": [ + { + "text": "Rewards", + "tagName": "h1", + "path": "antara/api/rewards", + "closestElementReference": "rewards" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": "The Rewards Antara Module creates a master-node like rewards program, giving a user the ability to earn rewards by locking coins.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": "It features configurable parameters, such as a customizable monthly reward, minimum deposit, a required holding period,etc.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": "There can be many ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": " plans active at any given time.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "introduction" + }, + { + "text": "Rewards Antara Module Flow", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "Anyone can create a new plan using ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardscreatefunding", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardscreatefunding", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "Anyone can add funding to the plan using ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsaddfunding", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsaddfunding", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "Anyone can query the list of all active plans using ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardslist", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardslist", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "To get the details of a particular plan, use ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsinfo", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsinfo", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "After finding a suitable plan, any user can lock funds using ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardslock", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardslock", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "After the minimum lock time is met, the user can use ", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsunlock", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": " to unlock their funds and receive their rewards", + "tagName": "li", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsunlock", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewards-antara-module-flow" + }, + { + "text": "rewardsaddfunding", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "rewardsaddfunding name fundingtxid amount", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "rewardsaddfunding", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": " method adds funds to a rewards plan.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddfunding" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------- |\n| name | (string) | the desired name of your rewards plan |\n| fundingtxid | (string) | the txid of the transaction that created and funded this plan |\n| amount | (number) | the amount of funds to add to the plan |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Step 1: Create a raw transaction and get the HEX value", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples" + }, + { + "text": "rewardsaddress", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "rewardsaddress (pubkey)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "rewardsaddress", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": " method returns info about the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": " plan associated with the given ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": ". If no ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": " is provided, the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": " used to launch the daemon is used.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | -------------------------------------------------------------------------------------- |\n| pubkey | (string, optional) | the pubkey of the requested info; by default it is the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | -------- | -------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the method executed successfully |\n| RewardsCCaddress | (string) | taking the module's EVAL code as a modifier, this is the public address that corresponds to the plan's privkey |\n| Rewardsmarker | (string) | the unmodified public address generated from the plan's privkey |\n| GatewaysPubkey | (string) | the pubkey for the Gateways Antara Module |\n| RewardsCCassets | (string) | this property is used for development purposes only and can otherwise be ignored |\n| CCaddress | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| myCCaddress | (string) | taking the module's EVAL code as a modifier, this is the Antara address from the pubkey of the user |\n| myaddress | (string) | the public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-2" + }, + { + "text": "rewardscreatefunding", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "rewardscreatefunding name amount APR mindays maxdays mindeposit", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "rewardscreatefunding", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " method creates a new ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " plan.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " method will then return a ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": ". This ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " is the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " that serves to identify the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": " plan.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "If you create a plan with ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "mindeposit: 10000", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": ", make sure to also add\n10000 of your coin and the transaction fees using the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "rewardsaddfunding", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "\ncall after creating the plan. The rewards module won't allow locking of funds\ngreater than the amount already locked in a single transaction as it needs to\nassure that it will have the required funds to pay.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardscreatefunding" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ----------------------------------------------------------- |\n| name | (string) | the desired name of your rewards plan |\n| amount | (number) | the amount of seed funds to withdraw from your wallet |\n| APR | (number) | the annual percentage of rewards, given in percentage units |\n| mindays | (number) | the minimum number of days the funds will be locked |\n| maxdays | (number) | the maximum number of days the funds will be locked |\n| mindeposit | (number) | the minimum deposit amount for a user to participate |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Step 1: Create raw transaction HEX using your own parameter", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Step 2: Broadcast/send the raw hex/transaction. This will output the txid which is the fundingtxid, also called the rewards plan id.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Step 3: Decode the raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-3" + }, + { + "text": "rewardsinfo", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "rewardsinfo fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "rewardsinfo", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": " method returns information about specific ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": " plan.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "rewardslist", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": " to see a list of all available ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "'s.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "rewardslist", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardsinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | -------------------------------------------------- |\n| fundingtxid | (string) | the txid given on the creation of the rewards plan |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | --------------------------------------------------------------------------- |\n| name | (string) | the name of the rewards plan |\n| sbits | (number) | a 64-bit int binary encoding of the first 8 characters of the name property |\n| APR | (number) | the annual percentage of rewards, given in percentage units |\n| minseconds | (number) | the minimum number of seconds the funds will be locked |\n| maxseconds | (number) | the maximum number of seconds the funds will be locked |\n| mindeposit | (number) | the minimum deposit amount |\n| funding | (number) | the total available funds in the rewards plan |\n| locked | (number) | the total funds locked in the rewards plan |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-4" + }, + { + "text": "rewardslist", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "rewardslist", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "rewardslist", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": " method lists the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "'s of all the rewards plans available on the Smart Chain.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | --------------------------------------------------------------------- |\n| fundingtxid | (string) | the txid of the transaction that created and funded the relevant plan |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-5" + }, + { + "text": "rewardslock", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardslock name fundingtxid amount", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardslock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " method commits your desired amount of funds into the specified rewards plan. They remain locked until the minimum number of seconds/days passes.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "The method returns a ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " value that must be broadcast using ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "sendrawtransaction.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "sendrawtransaction.", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " method will then return a ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": ", which is later used in the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardsunlock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " method. In general, it is best to save this ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " in a secure location.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardsunlock", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "If the final ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " is lost, it is possible to find it again. See ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardsunlock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "rewardsunlock", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardslock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | --------------------------------------------------------------------------- |\n| name | (string) | the name of the rewards plan |\n| fundingtxid | (string) | the txid that identifies the desired rewards plan |\n| amount | (number) | the amount of funds to commit to the plan (must be over the plan's minimum) |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-6" + }, + { + "text": "diceaddfunds", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-6" + }, + { + "text": " command |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Step 1: Create raw transaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-6" + }, + { + "text": "rewardsunlock", + "tagName": "h2", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "rewardsunlock name fundingtxid (txid)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "rewardsunlock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " method unlocks your funds from a specific rewards plan after the minimum lock time is met. If ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " is not provided, ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "rewardsunlock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " unlocks all funds in the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " plan.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " method to complete the command.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "If you attempt to unlock your funds before the minimum period is met, the daemon returns this error:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "The method requires the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " that was returned as a result of the original ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "rewardslock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "rewardslock", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "If the original ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " is lost, it is possible to find it again by either rebroadcasting the original ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " (if it is available), or by scanning through available utxos using the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "getaddressutxos", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "getaddressutxos", + "tagName": "a", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "{\n\"result\": \"error\",\n\"error\": \"reward 0 is <= the transaction fee\"\n}", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "An error similar to the one below prints in the console:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "rewardsunlock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| name | (string) | the name of the rewards plan |\n| fundingtxid | (string) | the txid that identifies the desired rewards plan |\n| txid | (string, optional) | the txid that was returned as a result of the original rewardslock command; if ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": " is not provided, ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": "rewardsunlock", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": " unlocks all funds in the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": " plan |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/rewards", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------------------------------------------------------------------------------------------- |\n| result: | (string) | whether the command succeeded |\n| hex: | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-7" + }, + { + "text": "diceaddfunds", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-7" + }, + { + "text": " command |", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Step 1: Create raw transaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Step 2: Broadcast raw transaction", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Step 3: Decode raw transaction (optional to check if the values are sane)", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rewards", + "closestElementReference": "examples-7" + } + ], + "antara/api/rogue": [ + { + "text": "Rogue", + "tagName": "h1", + "path": "antara/api/rogue", + "closestElementReference": "rogue" + }, + { + "text": "The Rogue Antara module is an Antara implementation of the classic Unix game, Rogue.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "rogue" + }, + { + "text": "Tutorial Availability", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "tutorial-availability" + }, + { + "text": "An installation, Rogue API, and gameplay walkthrough is available in the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Antara Tutorials section.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tutorial-availability" + }, + { + "text": "Antara Tutorials section.", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "tutorial-availability" + }, + { + "text": "bailout", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "cclib bailout 17 '[\"gametxid\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " method allows a user to withdraw their character from the game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "This method is only available when the character is still alive. The character must remain alive until the returned ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "bailout_txid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " is mined.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "Also, the character must have more than ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " gold and must have killed at least ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " monster. Otherwise, the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " method will treat the character as dead, regardless of the character's status.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "When the character successfully bails out from the game, all in-game gold the character has captured is converted into ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "The conversion ratio depends upon the mode of gameplay.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "Single-player mode:", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "Multi-player mode:", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "The conversion is facilitated using globally locked ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " coins. The funds in this global vault automatically accrue through smart-chain activity. In the event that there are not enough globally locked funds at the time the method is executed, the player must simply wait until the funds are generated via automated methods. You can encourage this fund to grow more quickly by encouraging other players and people to transact using ROGUE, as transactions feed the fund.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "The method returns a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " value. While most methods in the Komodo API require the user/developer to broadcast the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": " value using ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": ", the Rogue module broadcasts automatically.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "bailout" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments" + }, + { + "text": " transaction id that identifies the game for which the user would like to bail out their character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| myrogueaddr | (string) | the address on the Smart Chain for the user's ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": " |\n| gametxid | (string) | the unique ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": " transaction id that identifies this game |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": " value containing the relevant game data; this value is broadcast automatically |\n| txid | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": " transaction id that identifies this unique character; this txid can be used in the future with the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": " method to reuse the character from this game |\n| result | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples" + }, + { + "text": "extract", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "extract" + }, + { + "text": "cclib extract 17 '[\"gametxid\",\"pubkey\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "extract" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "extract" + }, + { + "text": "extract", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "extract" + }, + { + "text": " method allows the user to extract the complete history of a game. This allows the user to view a replay of the game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "extract" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | -------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the transaction id that was returned after broadcasting the returned hex value from the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": " method |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": " of the player for whom the user desires to extract all relevant game data |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| gametxid | (string) | the transaction id that was returned after broadcasting the returned hex value from the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " method |\n| rogueaddr | (string) | the address for the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " |\n| status | (string) | whether the command executed successfully |\n| keystrokes | (string) | all keyboard strokes concatenated into a single hex string |\n| numkeys | (number) | the total number of keystrokes (ASCII symbols) |\n| playertxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " transaction id that represents the character belonging to the indicated ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " |\n| extracted | (string) | the gameplay progress extracted via the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " replay feature |\n| seed | (decimal number) | the blockchain-generated random seed. This provides the necessary randomization for players to generate the current game's level design. The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " value is revealed at the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": " block height. |\n| replay | (string) | the complete terminal command that must be executed to begin this game |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-2" + }, + { + "text": "gameinfo", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": "cclib gameinfo 17 '[\"gametxid\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": " method returns relevant information about the indicated ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": " game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "gameinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | -------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the transaction id that was returned after broadcasting the returned hex value from the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-3" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-3" + }, + { + "text": " method |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| gametxid | (decimal number) | the indicated ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " transaction id |\n| result | (string) | whether the command executed successfully |\n| gameheight | (decimal number) | the block height at which this ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " was created |\n| height | (decimal number) | this value is the same as the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "gameheight", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " value above |\n| start | (decimal number) | the block height at which the seed will be revealed |\n| starthash | (string) | the hash of the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " block |\n| seed | (decimal number) | the blockchain-generated random seed. This provides the necessary entropy for players to generate the current game's level design. The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " value is revealed at the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " block height. |\n| run | (string) | the complete terminal command that must be executed to begin this game |\n| alive | (decimal number) | the number of players still alive in the game |\n| numplayers | (decimal number) | the total number of players that joined the game |\n| maxplayers | (decimal number) | the max number of players the game allows |\n| buyin | (number) | the amount of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": " coins required for a player to join |\n| players | (array of strings) | an array containing the identifying transaction ids of each player |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-3" + }, + { + "text": "games", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "games" + }, + { + "text": "cclib games 17", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "games" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "games" + }, + { + "text": "games", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "games" + }, + { + "text": " method displays a list of the user's unfinished and finished games.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "games" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | --------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| pastgames | (array of strings) | an array of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": " transaction ids of finished games, from the user's local wallet file |\n| games | (array of strings) | an array of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": " transaction ids of unfinished games, from the user's local wallet file |\n| numgames | (decimal number) | the total number of games, from the user's local wallet file |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-4" + }, + { + "text": "highlander", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "cclib highlander 17 '[\"gametxid\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " method allows a character to exit the game and claim the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " prize funds.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "In single-player mode, the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " method is available after safely retrieving the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " and exiting the dungeon.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "In multi-player mode, the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " method is available either to the character that is the last man standing, or to any character that successfully retrieves the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": " and exits the dungeon.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander" + }, + { + "text": "Highlander Rewards", + "tagName": "h3", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "The character that successfully executes the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": " method receives an increased ratio of conversion from in-game gold to ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": " coins. The ratio depends upon the mode of gameplay; see below for further details.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "The conversion is facilitated using globally locked ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": " coins. The funds in this global vault automatically accrue through smart-chain activity. In the event that there are not enough globally locked funds at the time the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": " method is executed, the player must wait until the funds are generated via automated methods. You can encourage this fund to grow more quickly by encouraging other players and people to transact using ROGUE, as transactions feed the fund.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "highlander-rewards" + }, + { + "text": "Rewards in Single-Player Mode", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "rewards-in-single-player-mode" + }, + { + "text": "Rewards in Multi-Player Mode", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "rewards-in-multi-player-mode" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-5" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-5" + }, + { + "text": " transaction id that identifies the game for which the user would like to bail out their character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| myrogueaddr | (string) | the address on the Smart Chain for the user's ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": " |\n| gametxid | (string) | the unique ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": " transaction id that identifies this game |\n| txid | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": " transaction id that identifies this unique character; this txid can be used in the future with the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": " method to reuse the character from this game |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-5" + }, + { + "text": "keystrokes", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "cclib keystrokes 17 '[\"gametxid\",\"keystrokes\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": " method executes the indicated ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "keystroke", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": " for the indicated ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "The player's keystrokes on the keyboard are recorded in ASCII format. ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "See this link", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": " for a table of ASCII keyboard translations.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "See this link", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "After a game concludes the complete list of keystrokes can be found in the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "~/komodo/src/keystrokes.log", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": " file.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "keystrokes" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ---------------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-6" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-6" + }, + { + "text": " transaction id that identifies the game for which the user would like to bail out their character |\n| keystrokes | (string) | the desired keystrokes, provided in ASCII format and concatenated into a single string |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| gametxid | (string) | the unique ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": " transaction id that identifies this game |\n| keystrokes | (string) | the desired keystrokes, provided in ASCII format and concatenated into a single string |\n| batontxid | (string) | the unique ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "batontxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": " transaction id; this value is useful for tracing the route of a utxo/token through the blockchain database |\n| playertxid | (string) | the unique identifying transaction id of this player |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": " value containing the relevant game data; this value is broadcast automatically |\n| txid | (string) | a unique transaction id for the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": " transaction |\n| result | (string) | whether the command executed successfully |\n| error | (string) | error messages are returned here |\n| id | (string) | the returned value here, ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "jl777", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": ", is constant and can be ignored |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-6" + }, + { + "text": "newgame", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "cclib newgame 17 '[maxplayers, buyin]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": " method creates a new game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": " argument is required for multi-player games. The coins contributed via ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": " become a winner-takes-all pot. Either the first player to claim the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": " and return from the dungeon, or the last player standing; may claim this prize using the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "newgame" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------------------------------- | ----------------------------------------------------------------------------------- |\n| maxplayers | (decimal number) | the max number of players; if set to ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": ", the game begins in single-player mode |\n| buyin | (number, required if ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "maxplayers", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": " > ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": ") | the required amount to contribute per player; the winner receives all ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": " coins |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | -------------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| maxplayers | (decimal number) | the max number of players for this game |\n| buyin | (number) | the required amount to contribute per player; the winner receives all ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": " coins |\n| type | (string) | the level of difficulty for this game |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": " value containing the relevant game data; this value is broadcast automatically |\n| txid | (string) | a transaction id that represents the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": " |\n| result | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-7" + }, + { + "text": "Command for a single-player training game:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-7" + }, + { + "text": "pending", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "pending" + }, + { + "text": "cclib pending 17", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "pending" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "pending" + }, + { + "text": "pending", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "pending" + }, + { + "text": " method displays a list of unfinished games on the Smart Chain.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "pending" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | --------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| pending | (array of strings) | an array of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-8" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-8" + }, + { + "text": "'s that represent unfinished games on the Smart Chain |\n| numpending | (decimal number) | the total number of unfinished games on the Smart Chain |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-8" + }, + { + "text": "playerinfo", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "playerinfo" + }, + { + "text": "cclib playerinfo 17 '[\"playertxid\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "playerinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "playerinfo" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "playerinfo" + }, + { + "text": " method displays information about the currently active character.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "playerinfo" + }, + { + "text": "Tips on Finding Character Information", + "tagName": "h5", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "There are occasions where the developer may wish to start with the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " of a character(s) and from there find the most up-to-date ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "The following is one solution:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "If necessary, obtain a list of all ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "tokens", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " on the Smart Chain via the ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "tokenlist", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " method.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "tokenlist", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "For each item in the response, execute an iterative function that executes the ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playerinfo", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " method on the individual ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "token", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "If the method responds with an error, this means that the supplied ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "token", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " does not represent a character. Rather, it represents another on-chain asset, and therefore the token can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "If the method responds with an error, this means that the supplied ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "token", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " does not represent a character. Rather, it represents another on-chain asset, and therefore the token can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "For each response from the ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playerinfo", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " method check two elements: whether the data contains a ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "batontxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "; whether the character is alive.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "If there is a ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "batontxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ", the ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " has been used in a game and is no longer valid. Therefore, this ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "Likewise, if the character is no longer alive, it can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "If there is a ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "batontxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ", the ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " has been used in a game and is no longer valid. Therefore, this ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "Likewise, if the character is no longer alive, it can be ignored.", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "Each ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "token", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " that has a valid response, no ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "batontxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ", and represents a living character can be considered the correct ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "tokentxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": " for the discovered ", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "playertxid", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/api/rogue", + "closestElementReference": "tips-on-finding-character-information" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------------- |\n| gametxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-9" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-9" + }, + { + "text": " transaction id that identifies the game for which the user would like to bail out their character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| player | (json object) | a json object containing relevant player data |\n| playertxid | (string) | the unique identifying transaction id of this player |\n| tokenid | (string) | the unique transaction id that represents this character as a non-fungible asset for on-chain trading using the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "Tokens CC", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " module |\n| data | (string) | the character-state information in hex form |\n| pack | (array of strings) | an array containing the items in the character's pack |\n| packsize | (number) | the number of items in the character's pack |\n| hitpoints | (number) | see ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " for further information |\n| strength | (number) | see ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " for further information |\n| level | (number) | see ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " for further information |\n| experience | (number) | see ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " for further information |\n| dungeonlevel | (number) | see ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": " for further information |\n| chain | (string) | the name of the Smart Chain on which this game is occurring |\n| pname | (string) | the name of the user's currently active character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "Tokens CC", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "this linked manual", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-9" + }, + { + "text": "players", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "cclib players 17", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": " method displays a list of all ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": " transaction ids held in the user's current ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "players" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | ------------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| playerdata | (array of strings) | an array containing all ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": " transaction ids in the user's local wallet |\n| numplayerdata | (decimal number) | the number of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": " transaction ids in the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": "playerdata", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": " array |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-10" + }, + { + "text": "register", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "cclib register 17 '[\"gametxid\"(,\"playertxid\")]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " method registers your character for a game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "The optional ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " allows the user to reuse a character that survived a previous game.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "For the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " argument to properly call an existing character, the user's daemon must be set to the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " that owns the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": ". This can be accomplished either through the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " launch parameter or through the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "setpubkey", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "setpubkey", + "tagName": "a", + "path": "antara/api/rogue", + "closestElementReference": "register" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ----------------------------------------------------------------------------- |\n| gametxid | (string) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": " of the game the user desires to join |\n| playertxid | (string, optional) | the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": " of an existing character the user owns and would like to use |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ---------------- | ------------------------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| maxplayers | (decimal number) | the max number of players allowed in this game |\n| buyin | (number) | the required ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": " amount of ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": " coins to enter the game |\n| type | (string) | the level of difficulty for this game |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": " value of registration data; this value is broadcast automatically |\n| txid | (string) | a transaction id that indicates the ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": " for this character |\n| result | (string) | whether the command executed successfully |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-11" + }, + { + "text": "Command (registration without player):", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-11" + }, + { + "text": "setname", + "tagName": "h2", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "cclib setname 17 '[\"pname\"]'", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "setname", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": " method sets the name of a character.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "A character may receive a ", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "name", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": " at any point, but the character's name may be set only once. It is not possible to rename a character.", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "setname" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | ---------------------------------------------------------- |\n| pname | (string) | the desired name for the user's currently active character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------- |\n| name | (string) | the name of the module |\n| method | (string) | the name of the method |\n| result | (string) | whether the command executed successfully |\n| pname | (string) | the desired name for the user's currently active character |", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/rogue", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/rogue", + "closestElementReference": "examples-12" + } + ], + "antara/api/sudoku": [ + { + "text": "Sudoku", + "tagName": "h1", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "The Sudoku Antara Module serves as a proof-of-concept to demonstrate Antara's capabilities as a blockchain-based gaming technology.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "The Sudoku Module is based on the classic game, Sudoku. To learn more about how Sudoku is played, read the associated Wikipedia article:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "Link to Sudoku Wikipedia article", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "Link to Sudoku Wikipedia article", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "The procedures to launch and finish a game require the execution of various Remote Procedure Calls (RPCs). By design, the Sudoku Module assumes the user relies on the associated Sudoku GUI software. The GUI is required because the UNIX timestamp for each gameplay event must pass trough the Sudoku RPC captcha protection, as this deters bots.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "The following installation and walkthrough tutorials can assist the reader in setting up and playing the Sudoku game. For more information, please reach out to our community on ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": ". The #cc-sudoku channel is available for questions and assistance.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "introduction" + }, + { + "text": "Sudoku Module Flow", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "Create a puzzle using the ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "gen", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "commit the amount of ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "SUDOKU", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " coins that will serve as a bounty for the first node to complete this puzzle", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "gen", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "commit the amount of ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "SUDOKU", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " coins that will serve as a bounty for the first node to complete this puzzle", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "Find a puzzle to solve using the ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "pending", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "pending", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "Gather additional information about any puzzle using the ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "txidinfo", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "txidinfo", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "Propose a solution for a puzzle using the ", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "solution", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "solution", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "sudoku-module-flow" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "installation" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Sudoku is currently playable on Linux machines.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "OSX and Windows compatible bundles will be ready as soon as possible. Please ask on our #cc-sudoku channel on ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": " for updates.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "The Komodo Sudoku software bundle (also called \"Komodoku\") for Ubunutu Linux comes complete with all necessary software. To download the bundle, please visit the link below:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Link to \"Komodoku\" Software Bundle", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Link to \"Komodoku\" Software Bundle", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "To manually compile the software, follow the instructions below.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "requirements" + }, + { + "text": "Install Dependencies", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "install-dependencies" + }, + { + "text": "Linux", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "linux" + }, + { + "text": "Clone & Compile Komodo", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "clone-and-compile-komodo" + }, + { + "text": "Linux", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "linux-2" + }, + { + "text": "Wait for the build process to finish, and then continue with the following commands:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "linux-2" + }, + { + "text": "Update ", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "komodod" + }, + { + "text": "komodod", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "komodod" + }, + { + "text": "Wait for the build process to finish, and then continue with the following commands:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "komodod" + }, + { + "text": "Set ", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "value" + }, + { + "text": "pubkey", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "value" + }, + { + "text": " value", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "value" + }, + { + "text": "Ensure the working directory is correct:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "value" + }, + { + "text": "Step 1 - Start the chain", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "step-1-start-the-chain" + }, + { + "text": "Start the SUDOKU chain with the following command in a terminal window and wait for the daemon to sync. Keep this terminal open and the daemon running for the duration of your Sudoku gameplay.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-1-start-the-chain" + }, + { + "text": "Step 2", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "step-2" + }, + { + "text": "Open a new terminal. This terminal can be used to execute all remaining installation and gameplay commands.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-2" + }, + { + "text": "The returned value is a SUDOKU address. We need to find the associated pubkey for this address.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-2" + }, + { + "text": "Step 3", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": " method with the address.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": " method will return information similar to the following:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "Look for the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": " value:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "This is the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": " for our address.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-3" + }, + { + "text": "Step 4", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "Set the pubkey for the SUDOKU Smart Chain.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "The pubkey is now set.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "To reuse this pubkey in the future, include the pubkey as a ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "step-4" + }, + { + "text": "Install Sudoku Graphical User Interface (GUI)", + "tagName": "h3", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "The Komodo team offers an unofficial graphical user interface (GUI) to assist the user with Sudoku-puzzle solving visualization. By design, the Sudoku module assumes the user relies on the associated Sudoku GUI software. The GUI is required because the UNIX timestamp for each gameplay event must pass trough the Sudoku RPC captcha protection, as this deters bots.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "Download the portable GUI bundle from the following link:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "Link to GUI Software Bundle", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "Link to GUI Software Bundle", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "To manually compile the GUI from source code, follow the steps below. Please note that the GUI is based on ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "python2", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "install-sudoku-graphical-user-interface-gui" + }, + { + "text": "Linux", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "linux-3" + }, + { + "text": "Install Dependencies", + "tagName": "h5", + "path": "antara/api/sudoku", + "closestElementReference": "install-dependencies-2" + }, + { + "text": "Install the GUI", + "tagName": "h5", + "path": "antara/api/sudoku", + "closestElementReference": "install-the-gui" + }, + { + "text": "Start Sudoku GUI", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "start-sudoku-gui" + }, + { + "text": "gen", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "cclib gen 17", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "The generate method creates a new Sudoku puzzle.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "gen" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "Daemon ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "stdout", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------------------------------------ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| (solved Sudoku puzzle, visualized) | (string, multi-line) | an ASCII-character representation of the generated Sudoku puzzle, with all solutions in place |\n| (unsolved Sudoku puzzle, visualized) | (string, multi-line) | an ASCII-character representation of the generated Sudoku puzzle, with numbers removed for gameplay |\n| (numbers remaining) | (string) | a description of how many numbers are remaining to solve in the Sudoku puzzle |\n| (Sudoku Puzzle - integer) | (number, multi-line) | a multi-line number-based representation of the solved Sudoku puzzle; no visual embellishments |\n| solve | (number) | a number-based concatenated representation of the unsolved Sudoku puzzle; ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "'s represent empty spaces in the puzzle |\n| score | (string) | ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "score", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": " returns three values: the difficulty of the puzzle calculated by the generator, the solution in concatenated format, the number of numbers left to fill |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "json output:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | name of the module |\n| method | (string) | name of the method |\n| srand | (number) | the seed of the non-blockchain based puzzle that is creating RNG |\n| amount | (number) | the reward provided to the first node to submit the correct solution |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": " value representing the encoded data; this must be broadcast using ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": " |\n| txid | (string) | a transaction id representing the generation of this Sudoku puzzle, also called the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "examples" + }, + { + "text": "pending", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "pending" + }, + { + "text": "cclib pending 17", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "pending" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "pending" + }, + { + "text": "pending", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "pending" + }, + { + "text": " method returns a complete list of all unsolved puzzles on the Smart Chain.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "pending" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ----------------------- | ------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| name | (string) | name of the module |\n| method | (string) | name of the method |\n| pending | (array of json objects) | an array of json objects, each containing information about an unsolved puzzle on the chain |\n| height | (number) | the block height at which the puzzle was generated |\n| amount | (number) | the reward provided to the first node to submit the correct solution |\n| txid | (string) | a transaction id representing the generation of this puzzle, also called the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-2" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-2" + }, + { + "text": " |\n| numpending | (number) | the total number of on-chain unsolved puzzles |\n| total | (number) | the collective value of all outstanding bounties for unsolved puzzles |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "examples-2" + }, + { + "text": "solution", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "cclib solution 17 '[\"puzzle_txid\",\"solution\",t0,t1,t2,...]'", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "solution", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " method submits the proposed ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "solution", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " to the blockchain for the indicated ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " puzzle.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "t0...", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " values represent the timestamp at which the solution was found for each number. Pre-filled cells have an automated timestamp of ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "tX=0", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": ", where ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "X", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " is the index of the puzzle number.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "The method returns a hex value which must then be broadcast using the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "solution" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| -------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| txid | (string) | a transaction id representing the generation of this puzzle, also called the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": " |\n| solution | (numeric string) | the proposed solution, provided in a concatenated format |\n| tX... | (81 UNIX timestamps separated by comma) | there are ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "81", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": " total ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "t...", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": " arguments. ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "X", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": " is the index of the indicated argument. The argument is a timestamp representing the time at which ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "X", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": " number was input. Timestamp value should be 0 for numbers which were already known |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "json output:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------------------------------------------- |\n| name | (string) | name of the module |\n| hex | (string) | a ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": " value representing the encoded data; this must be broadcast using ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": " |\n| txid | (string) | a transaction id representing the generation of this Sudoku puzzle, also called the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": " |\n| amount | (number) | the reward provided to the first node to submit the correct solution |\n| result | (string) | whether the command executed successfully |\n| sudokuaddr | (string) | the Antara address that owns this puzzle reward and will distribute the reward |\n| method | (string) | name of the method |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "Daemon ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "stdout", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| solved | (string) | this returns three values: the block height at which the puzzle was solved, the amount of coins rewarded, the solution txid |\n| solution | (number) | this contains three values: a number-based concatenated representation of the solved puzzle; a string representing the concatenated unsolved puzzle; the total score for solving this puzzle |\n| statistics | (string) | information which helps this module developer to detect was puzzle solved by robot or human |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "examples-3" + }, + { + "text": "txidinfo", + "tagName": "h2", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": "cclib txidinfo 17 '[\"puzzle_txid\"]'", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": "txidinfo", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": " method returns information about the indicated ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": " puzzle.", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "txidinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |\n| puzzle_txid | (string) | the unique transaction id of the requested puzzle, as returned from the broadcast hex of the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-4" + }, + { + "text": "gen", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-4" + }, + { + "text": " method |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-4" + }, + { + "text": "gen", + "tagName": "a", + "path": "antara/api/sudoku", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| txid | (string) | a transaction id representing the generation of this Sudoku puzzle, also called the ", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-4" + }, + { + "text": "puzzle_txid", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-4" + }, + { + "text": " |\n| result | (string) | whether the command executed successfully |\n| height | (number) | the block height at which the puzzle was generated |\n| sudokuaddr | (string) | the Antara address that owns this puzzle funds and will distribute the reward |\n| amount | (number) | the reward provided to the first node to submit the correct solution |\n| unsolved | (string) | the unsolved puzzle, provided in concatenated form, filling playing field from left to right horizontally, and from top to bottom vertically |\n| name | (string) | name of the module |\n| method | (string) | name of the method |", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/sudoku", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/sudoku", + "closestElementReference": "examples-4" + } + ], + "antara/api/tokens": [ + { + "text": "Tokens", + "tagName": "h1", + "path": "antara/api/tokens", + "closestElementReference": "tokens" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "The Tokens Module enables support for the on-chain creation of colored coins, also called tokens. The created tokens are typically used with another module that supports operations on tokens. For example, the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "Assets Module", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": " provides buy/sell operations for ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "tokens", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "Assets Module", + "tagName": "a", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "Tokens can be generated on any chain where the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": " parameter is enabled.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "ac_cc", + "tagName": "a", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "tokens", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": " module requires locking a proportional amount of the native coins. Each ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "satoshi", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": " of the native coin is equal to one token within the total supply.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "satoshi", + "tagName": "a", + "path": "antara/api/tokens", + "closestElementReference": "introduction" + }, + { + "text": "tokenaddress", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "tokenaddress (pubkey)", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "tokenaddress", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": " method returns information about a token address according to a specific ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": ". If no ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": " is provided, the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": " used to launch the daemon is the default.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | --------------------------------- |\n| pubkey | (string, optional) | the pubkey of the desired address |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| TokensCCaddress | (string) | taking the token contract's EVAL code as a modifier, this is the public address that corresponds to the token contract's privkey, also known as Tokens CC's global address |\n| myCCaddress | (string) | taking the token contract's EVAL code as a modifier, this is the Tokens Antara address from the pubkey of the user |\n| myaddress | (string) | the normal public address of the pubkey used to launch the chain |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples" + }, + { + "text": "tokenbalance", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "tokenbalance tokenid (pubkey)", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "tokenbalance", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": " method checks the token balance according to a provided ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": ". If no ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": " is provided, the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": " used to launch the daemon is the default.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | -------------------------------------------------------------------------------------------------------------------------- |\n| tokenid | (string) | the txid that identifies the token |\n| pubkey | (string) | the pubkey for which to examine the balance; if no pubkey is provided, the pubkey used to launch the daemon is the default |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed succesfully |\n| CCaddress | (string) | taking the token contract's EVAL code as a modifier, this is the CC address from the pubkey of the user |\n| tokenid | (string) | the txid that identifies the token |\n| balance | (number) | the balance of the address that corresponds to the pubkey |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "Check the token balance of a specific pubkey", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-2" + }, + { + "text": "tokencreate", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "tokencreate name supply description", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "tokencreate", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": " method creates a new token.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "For every token created, the method requires one satoshi of the parent blockchain's coins. For example, ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "1 COIN", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": " of the blockchain provides ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "100000000", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": " tokens.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "The method returns a hex-encoded transaction which should then be broadcast using ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": " then returns a ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": ", which is your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokencreate" + }, + { + "text": "Non-Fungible Tokens", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "non-fungible-tokens" + }, + { + "text": "A non-fungible token contains an additional array of data describing its corresponding asset. The data has an eval code which binds this non-fungible token to an Antara Module responsible for validation.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "non-fungible-tokens" + }, + { + "text": "To create a non-fungible token, use only 1 satoshi.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "non-fungible-tokens" + }, + { + "text": "Fractional Tokens", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "fractional-tokens" + }, + { + "text": "To create a token that can be divided and transferred in fractional amounts, this must be handled on the application side of development.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "fractional-tokens" + }, + { + "text": "To create a token that is divisible to one decimal place, for example, consider 10 tokens as a single unit. Sending one satoshi's worth of the token is the equivalent of sending one decimal point of the actual token.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "fractional-tokens" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | --------------------------------------------- |\n| name | (string) | the proposed name of the token |\n| supply | (number) | the amount of coins used to create the tokens |\n| description | (string) | the description of the token |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Step 2: Broadcast the raw transaction hex", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Step 3 (Optional): Use decoderawtransaction to verify the output is sane", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-3" + }, + { + "text": "tokeninfo", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokeninfo" + }, + { + "text": "tokeninfo tokenid", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokeninfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokeninfo" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokeninfo" + }, + { + "text": " method reveals information about any token.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokeninfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------------- |\n| tokenid | (string) | the txid that identifies the token |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ----------------- | ---------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| tokenid | (string) | the identifying txid for the token id |\n| owner | (string) | the identifying pubkey of the token creator |\n| name | (string) | the name of the token |\n| supply | (number) | the total supply of the token |\n| description | (string) | the token description provided by the owner at token creation |\n| data | (string,optional) | the data related to the non-fungible token, in hex |\n| IsImported | (string,optional) | if 'yes' this token was imported from another chain |\n| sourceChain | (string,optional) | the name of the imported token's source chain |\n| sourceTokenId | (string,optional) | for an imported token, the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-4" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-4" + }, + { + "text": " of the source token on the source chain |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-4" + }, + { + "text": "tokenlist", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokenlist" + }, + { + "text": "tokenlist", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenlist" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenlist" + }, + { + "text": "tokenlist", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenlist" + }, + { + "text": " method lists all available tokens on the smart chain.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokenlist" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------ | ------------------------------------- |\n| tokenid | (array of strings) | the identifying txid for the token id |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-5" + }, + { + "text": "tokentransfer", + "tagName": "h2", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "tokentransfer tokenid destpubkey amount", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "tokentransfer", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": " method transfers tokens from one Antara Address to another.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "It is similar to the ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "sendmany", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": " method used to send coins on the parent chain.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "sendmany", + "tagName": "a", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "The method returns a raw hex, which must be broadcast using ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": " to complete the command.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "The source ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "txid/vout", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": " needs to be specified as it is critical to match\noutputs with inputs.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "A token may be burned by using ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "tokentransfer", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": " to send to a burn address.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "tokentransfer" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------------------------ |\n| tokenid | (string, optional) | the identifying txid for the token id |\n| destpubkey | (string) | the pubkey where the tokens should be sent |\n| amount | (number) | the number of tokens to send |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "antara/api/tokens", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| hex | (string) | a raw transaction in hex-encoded format; you must broadcast this transaction to complete the command |", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Step 1: Create the rawtransaction", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Step 2: Broadcast using ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Step 3: Decode the raw transaction and check against the following if the data is sane", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/api/tokens", + "closestElementReference": "examples-6" + } + ], + "antara": [ + { + "text": "Introduction to Antara", + "tagName": "h1", + "path": "antara", + "closestElementReference": "introduction-to-antara" + }, + { + "text": "Welcome to the Antara technical documentation.", + "tagName": "p", + "path": "antara", + "closestElementReference": "introduction-to-antara" + }, + { + "text": "About the Antara Section", + "tagName": "h2", + "path": "antara", + "closestElementReference": "about-the-antara-section" + }, + { + "text": "This documentation is intended for developers learning about, building, and interacting with the Antara framework.", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-the-antara-section" + }, + { + "text": "Conceptual Overview", + "tagName": "h4", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "A brief conceptual overview of the Antara framework can be found in the ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Start Here", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": " > ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Product Introductions", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": " > ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Smart Chains & Antara ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section.", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to \"Smart Chains & Antara\" Introduction", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to \"Smart Chains & Antara\" Introduction", + "tagName": "a", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Antara Tutorials", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section contains more thorough conceptual explanations of Antara.", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Antara Tutorials", + "tagName": "a", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Please consult our ", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Learning Path Outlines", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section for more details on approaches to learning Antara from both a conceptual and technical perspective.", + "tagName": "p", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Learning Path Outlines", + "tagName": "a", + "path": "antara", + "closestElementReference": "conceptual-overview" + }, + { + "text": "About Antara Setup", + "tagName": "h4", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "The Antara Setup section contains basic information about setting up and using an Antara-enabled environment. Example topics include:", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "Understanding Antara Addresses", + "tagName": "li", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "Understanding Antara Addresses", + "tagName": "a", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "Antara Customizations Available for Smart Chains During Creation and Hard Forks ", + "tagName": "li", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "Antara Customizations Available for Smart Chains During Creation and Hard Forks ", + "tagName": "a", + "path": "antara", + "closestElementReference": "about-antara-setup" + }, + { + "text": "About Antara Tutorials", + "tagName": "h4", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": "The Antara Tutorials section contains various tutorials that provide instruction for Antara usage and creation.", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": "For a walkthrough covering multiple tutorials in a targeted fashion, please see the ", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": " section.", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "a", + "path": "antara", + "closestElementReference": "about-antara-tutorials" + }, + { + "text": "About Antara API", + "tagName": "h4", + "path": "antara", + "closestElementReference": "about-antara-api" + }, + { + "text": "The Antara API section contains all available API commands for all default Antara modules.", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-api" + }, + { + "text": "These API commands can also be called Remote Procedure Calls, or RPCs.", + "tagName": "p", + "path": "antara", + "closestElementReference": "about-antara-api" + } + ], + "antara/setup/antara-customizations": [ + { + "text": "Antara Customizations", + "tagName": "h1", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": "The Antara Framework offers various default Antara Customizations.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": "The desired combination of parameters should be included with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": " execution every time the Smart Chain daemon is launched.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": "Changing these customizations at a later time is possible, but this typically requires a hard-fork of your Smart Chain. In general, the best practice for a developer is have all Smart Chain's parameters finalized before decentralizing the ownership of your coin. Should you discover a need to change these parameters after the fact, please reach out to our development team for assistance.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "antara-customizations" + }, + { + "text": "ac_adaptivepow", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow" + }, + { + "text": "This parameter is in its final testing stages.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow" + }, + { + "text": "Understanding Difficulty Stranding", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "ac_adaptivepow", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": " parameter solves a vulnerability known as \"Difficulty Stranding.\" Low-hashrate blockchains are particularly susceptible to this vulnerability.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "When a blockchain's hashrate is much lower than that of another blockchain with the same mining algorithm, miners from the higher-powered chain can move to the lower-powered chain and mine a large number of blocks in a short amount of time.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "In so doing, the rapid influx of new miners causes a part of the lower-powered chain's consensus mechanism called the Difficulty Adjustment Algorithm (DAA) to drastically increase the difficulty of finding a block. When the higher-powered group of miners leave, the difficulty level remains.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "The smaller group of miners now may not be able to provide enough hash power to overcome the new difficulty level, and therefore this chain can be frozen.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "This type of behavior is called \"difficulty stranding,” and can be used as a method of malicious attack. This is a threat that is faced by all pure PoW chains that have a minor hashrate.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "understanding-difficulty-stranding" + }, + { + "text": "ac_adaptivepow Adjusts the Difficulty Level", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "ac_adaptivepow", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": " parameter changes the Difficulty Adjustment Algorithm (DAA) of a Smart Chain to alleviate the potential effects of a \"difficulty stranding\" attack.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "One method by which ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "ac_adaptivepow", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": " alleviates the vulnerability is the changing of the time at which the difficulty level is set. Normally, the difficulty level is adjusted at the conclusion of finding a new block. With ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "ac_adaptivepow", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": ", the difficulty target is adjusted as a part of the process of finding a new block.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "This makes the process of lowering the difficulty easier and faster, as the DAA can take into account the amount of time the miners on the network are consuming to find a new block. If the amount of time is too high, the DAA can lower the difficulty as needed. More details on the implementation and rationale can be found in this ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "blog post.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "blog post.", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "Adding the parameter ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "-ac_adaptivepow=1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": " enables AdaptivePoW for a newly created Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-adaptivepow-adjusts-the-difficulty-level" + }, + { + "text": "ac_algo", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "This parameter is in its final testing stages. Please reach out to us if you would like to use it on a production chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "ac_algo", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": " parameter changes the chain's mining algorithm from the default equihash to the verushash.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "To enable this feature, set ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "-ac_algo=verushash", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "This activates verushash1.0. More recent versions of verushash are not yet supported.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "The verushash feature serves as a proof of concept for adding support for additional mining algorithms.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "The Komodo team is currently testing methods to support compatibility for ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": ", but this feature is not yet recommended for external testing.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-algo" + }, + { + "text": "ac_blocktime", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "This parameter sets the average time (in seconds) by which a new block should be mined.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "If this parameter is not included, the default value is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "ac_blocktime=60", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "When the value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "ac_blocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": " is less than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "60", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": ", the Smart Chain's block time will stabilize within less than twelve hours after launch. If the Smart Chain's ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "ac_blocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": " value is greater than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "60", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": ", the Smart Chain's block time can require several days to stabilize.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "When the value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "ac_blocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": " is less than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "12", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": " seconds (a high speed Smart Chain), the variances in network quality between consensus nodes (miners and stakers) can create difficulties in achieving a stable blockchain consensus. High-speed Smart Chains may function effectively on a LAN or other stable network, but Komodo recommends caution when attempting to manage a high-speed Smart Chain on the public Internet.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-blocktime" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples" + }, + { + "text": "A 777777 coin pre-mine with a 1-coin block reward and a block speed of 20 seconds.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples" + }, + { + "text": "ac_cbmaturity", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_cbmaturity", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " parameter allows the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "COINBASE_MATURITY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " value to be changed.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "COINBASE_MATURITY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " value is the number of blocks that must be confirmed between the creation of a coin (in a coinbase transaction) and the moment the coin can be spent.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "This allows the developers of a Smart Chain to require that miners and stakers on a blockchain network wait for an arbitrary amount of time after mining new coins to spend them..", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "For example, if a Smart Chain is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_cbmaturity=10", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": ", newly mined coins must wait for 10 confirmations on the network before they can be spent.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "By default, this value is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " on Smart Chains without ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " and set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": " on Smart Chains with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbmaturity" + }, + { + "text": "ac_cbopret", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "(In Development)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "ac_cbopret", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": " parameter allows the Decentralised Trustless Oracle mechanism to be enabled on a Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "Prices Antara module", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": " required the existence of a completely trustless and decentralized price feed Oracle (a DTO). The DTO was implemented by ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "piggybacking on the timestamp consensus rules", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": ". It works by requiring the miners of the Smart Chain to include the required off-chain data as a part of OP_RETURN of the coinbase transaction (The transaction that pays the block reward to the miner). The validation of the off-chain data is part of the consensus rules and if the data is false, the block will be rejected by the network, which incentivizes the miner to be truthful. To achieve consensus, all nodes allow an error of about 1% in the reported data.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "Prices Antara module", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "piggybacking on the timestamp consensus rules", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "The value of the parameter is a 4 bit binary number converted to decimal. Each bit of the binary number has a specific meaning as explained below:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "Let the 4 bit binary number be ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "wxyz", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "w,x,y,z are bit4, bit3, bit2 and bit1 respectively", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "if z = 1 : DTO is enabled and miners are required to add some data to the coinbase transaction's ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "OP_RETURN", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "OP_RETURN", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "if y = 1 : the data miners will write is prices of BTC vs fiat pairs viz., BTC_USD, BTC_GBP, BTC_EUR and Major fiat vs USD pairs", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "if x = 1 : the data miners will write is prices of Cryptocurrencies included in the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "-ac_prices", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": " parameter", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "-ac_prices", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "if w = 1 : the data miners will write is prices of Stocks included in the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "-ac_stocks", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": " parameter", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "-ac_stocks", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cbopret" + }, + { + "text": "Examples", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "If we only want the prices for BTC vs fiat pairs and fiat vs USD pairs, we have (w=0,x=0,y=1,z=1) i.e., ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "0011", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " -> converted to decimal is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "3", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "; the value for the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "ac_cbopret", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " parameter is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "3", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "If we want the pairs from the above example and prices of the Cryptocurrencies included in the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "-ac_prices", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " parameter, we have (w=0,x=1,y=1,z=1) i.e., ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "0111", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " -> converted to decimal is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "7", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "; the value for the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "ac_cbopret", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " parameter is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "7", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "-ac_prices", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "If we just want the prices of the Stocks included in the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "-ac_stocks", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " parameter, we have (w=1,x=0,y=0,z=1) i.e., ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "1001", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " -> converted to decimal is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "9", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "; the value for the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "ac_cbopret", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": " parameter is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "9", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "-ac_stocks", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-2" + }, + { + "text": "ac_cc", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " parameter sets the network cluster on which the chain can interact with other chains via Antara modules and MoMoM technology.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "Once activated, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " parameter can allow features such as cross-chain fungibility -- coins on one Smart Chain can be directly transferred to any other Smart Chain that has the same ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " setting and the same set of notary nodes (same set of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "notary pubkeys", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": ") .", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "Most functionalities enabled by ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " can function with or without Komodo's notarization service. However, cross-chain transaction validation and its dependent features, including cross-chain fungibility, require notarization.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "If the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " parameter is set to a value greater than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " (i.e. Antara is permitted on the Smart Chain) users should include the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": " parameter when launching the daemon of this Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "-pubkey", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc" + }, + { + "text": "ac_cc=0", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "Setting ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "ac_cc=0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": " disables Antara on the Smart Chain entirely.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "It is better to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "NOT", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": " use ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "ac_cc=0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": " for a Smart Chain where Antara should\nnot be enabled. Omitting the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": " parameter altogether will achieve the\nsame result.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-0" + }, + { + "text": "ac_cc=1", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-1" + }, + { + "text": "Setting ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-1" + }, + { + "text": "ac_cc=1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-1" + }, + { + "text": " permits Antara on the Smart Chain, but will not allow the Smart Chain to interact in cross-chain Antara functionality with other Smart Chains.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-1" + }, + { + "text": "ac_cc=2 to 99", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": "The values of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": " through ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": "99", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": " (inclusive) indicate Smart Chains that can validate transactions that occur on other Smart Chains on the same cluster (i.e. the same ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": " value), but their coins are not fungible and therefore cannot be transferred between blockchains.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2-to-99" + }, + { + "text": "ac_cc=100 to 9999", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "Setting the value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " to any value greater than or equal to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " will permit cross-chain interaction with any Smart Chain that has the same ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " value and is secured by notary nodes with the same ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "All Smart Chains that have the same ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc (>= 100)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " value form a cluster, where the base tokens of all the chains in the cluster are fungible via the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "burn protocol", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "burn protocol", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "For example, a Smart Chain set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc=201", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " in its parameters can interact with other Smart Chains with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc=201", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": " on the same notary-node network, but cannot interact with a Smart Chain set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "ac_cc=301", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-100-to-9999" + }, + { + "text": "Summary of ", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "ac_cc", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "Consider a chain with -ac_cc=N", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "If ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "N = 0", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ", Antara is disabled", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "If ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "N > 0", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ", Antara is enabled", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "If ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "N = 1", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ", on-chain Antara is active, cross-chain validation is disabled", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "If ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "N ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": " 2 and ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": " 99", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ", the chain allows for cross-chain contracts between all other chains bearing the same N value. The base coins in each Smart Chain are non-fungible across chains.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "If ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "N ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": " 100", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ", the chain can form a cluster with all other chains with the same N value and on the same dPoW notarization network. The base coins of all chains in the cluster are fungible via the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "burn protocol", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "burn protocol", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cc-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-3" + }, + { + "text": "A 777777 pre-mined chain with no Antara modules enabled.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-3" + }, + { + "text": "A 777777 pre-mined chain with Antara modules on-chain only; no cross-chain Antara modules.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-3" + }, + { + "text": "A 777777 pre-mined chain where Antara modules are allowed between all fellow Smart Chains that have -ac_cc=2 in their launch parameters. However, the cross-chain burn protocol is not active, and therefore coins cannot be transferred between chains.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-3" + }, + { + "text": "A 777777 pre-mined chain. Antara modules are allowed between all fellow Smart Chains that have -ac_cc=102 in their launch parameters. Also, all -ac_cc=102 chains can use the cross-chain burn protocol to transfer coins from one chain to another.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-3" + }, + { + "text": "ac_ccactivate", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "-ac_ccactivate=block_height", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_ccactivate", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " launch parameter allows for the activation of Antara on an existing Komodo-based Smart Chain wherein Antara was not originally enabled.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "Add the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_ccactivate", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " parameter to the existing launch command for the Smart Chain and set the value equal to a future block height. When this block height is reached, Antara will be available on the Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "This change requires a hard fork of the Smart Chain. If the Smart Chain is receiving Komodo's dPoW security service, the notary nodes must relaunch their Smart Chain daemons with the new launch parameter. All nodes must also update their daemons in the same manner.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "By default, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_ccactivate", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " uses the default ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_cc=2", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": ". It is not necessary to further specify ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " in the launch parameters, unless a value other than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": " is required.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-4" + }, + { + "text": "Before Using ", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-2" + }, + { + "text": "ac_ccactivate", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-2" + }, + { + "text": "After Using ", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": "ac_ccactivate", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": "In this example, Antara will be available at blockheight ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": "140", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": ". All nodes, include the notary nodes, must relaunch the daemon with the new parameters before blockheight ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": "140", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccactivate-3" + }, + { + "text": "ac_ccenable", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "This parameter is at the end of the beta development phase and is prepared for\npublic testing. If you are interested in adopting this feature for a\nproduction Smart Chain, please reach out to us so that we can assist you.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_ccenable", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " parameter restricts the Smart Chain so that only indicated Antara modules can be enabled. ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_ccenable", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " requires ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " to be active.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_cc", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "To indicate which Antara modules should be available, insert each module's eval code in decimal and separated by commas.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "The following table presents an abbreviated list of EVAL codes. For more information, please see ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "this linked content", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "this linked content", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "| Name of the module | EvalCode |\n| ------------------ | -------- |\n| IMPORTPAYOUT | 225 |\n| IMPORTCOIN | 226 |\n| ASSETS | 227 |\n| FAUCET | 228 |\n| REWARDS | 229 |\n| DICE | 230 |\n| FSM | 231 |\n| AUCTION | 232 |\n| LOTTO | 233 |\n| HEIR | 234 |\n| CHANNELS | 235 |\n| ORACLES | 236 |\n| PRICES | 237 |\n| PEGS | 238 |\n| TRIGGERS | 239 |\n| PAYMENTS | 240 |\n| GATEWAYS | 241 |\n| TOKENS | 242 |\n| IMPORTGATEWAYS | 243 |", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "For example, the following parameters create a Smart Chain where only the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "faucet", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "rewards", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " modules are active:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "When ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "-ac_cc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " is set, but ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "-ac_ccenable", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " is not, all Antara modules are enabled.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_ccenable", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " disables spending utxos that are created under a non-enabled\nAntara module. We have also implemented additional functionality that disables\nAPI functions. This prevents the user from creating a utxo that ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_ccenable", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "\nwould render unspendable. It is still possible to create raw transactions that\nbypass this security feature, and thus create utxos that are unspendable. A\nnormal user or developer relying on our API functionality should not be\nconcerned with this. However, those who experiment with raw transactions\nshould be cautious.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "If the developer is also using a new feature that has yet to be documented\nhere, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_cclib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": ", the eval codes in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "libcc.so", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": " will not disable Antara API\ncalls. Therefore, there remains a risk that a disabled API call can still be\nused to create a utxo, which will then be non-spendable.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-ccenable" + }, + { + "text": "ac_cclib", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "ac_cclib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": " parameter is used in conjunction with various Antara modules.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "Typically, the Smart Chain that uses the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "ac_cclib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": " parameter will have a unique build process. This is described as a part of each Antara module in question. Once the Smart Chain is properly built, the terminal command to launch the chain will include the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "ac_cclib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": " parameter in a manner similar to the following:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "Each Antara module uses the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "ac_cclib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": " parameter differently, and therefore the reader should refer to the desired Antara module for further instructions.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-cclib" + }, + { + "text": "ac_decay", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "This is the percentage which determines the block reward decrease on each block-reward \"halving\".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "This parameter will have no effect if ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": " is not set.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "This is the formula that ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_decay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": " follows:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "For example, if this parameter is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "75000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": ", at each \"halving\" the block reward will drop to 75% of its previous value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-decay" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-5" + }, + { + "text": "A 777777-coin pre-mine, with a 10-coin block reward, and the block reward decreases by 25% every 2000 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-5" + }, + { + "text": "ac_end", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-end" + }, + { + "text": "This is the block height at which block rewards will end. Every block after this height will have 0 block reward (this means that, assuming all other settings are default, the only incentive to mine a new block will be transaction fees).", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-end" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-6" + }, + { + "text": "A 777777-coin pre-mine, with a block reward of 0.0005 coin. The block reward ends at block 25000.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-6" + }, + { + "text": "A 777777-coin pre-mine, with a 5-coin block reward, and the block reward ends at block 200.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-6" + }, + { + "text": "A 777777-coin pre-mine, with a 5-coin block reward, the block reward decreases by 50% every 2000 blocks, and the block reward ends at block 10000.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-6" + }, + { + "text": "ac_eras", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras" + }, + { + "text": " parameter allows the value of a chain's block reward to vary over time.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras" + }, + { + "text": "Each different time interval is called an \"era\" and a chain can have at most seven eras.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras" + }, + { + "text": "ac_eras Combined With ac_cbmaturity", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "When active, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " changes the behavior of coinbase coins (i.e., the coins that are created as a result of mining). ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " forces the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "COINBASE_MATURITY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " value of coinbase coins to be ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " instead of the normal value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": ". Therefore, coinbase coins become spendable after ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " confirmations.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "This ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "COINBASE_MATURITY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " value can be explicitly changed using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_cbmaturity", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " parameter. Changing this ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "COINBASE_MATURITY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " value to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " is recommended if a chain uses ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": " in conjunction with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_cbmaturity", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_staked", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-combined-with-ac-cbmaturity" + }, + { + "text": "ac_eras Instructions", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " parameter accepts only one value. The value must be between ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "7", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ", inclusive. When activated, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " allows certain other Smart Chain parameters to accept multiple values.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "The principle parameter that is affected by ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ". The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " parameter must receive at least one value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "Also, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_decay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_halving", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_notarypay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " can each receive multiple values and thereby affect reward functionality.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_decay", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_halving", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_notarypay", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "For every era, there must be a corresponding value in ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " that indicates the block height at which this era ends. To set the final era to last indefinitely, set the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value of that era to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "; the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " setting should only be used for the last era. If the last era's ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value is not ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ", the chain's block rewards will stop after the final ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value, and every block after the final ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_end", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value will have no block reward.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "In all parameters receiving multiple values, the values must be preceded by a comma.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "In this Smart Chain, the first era will have a reward of 5000000000, the second will have 7000000000, and the third will have 4000000000. The reward for the first era ends at block 1000, for the second era at block 10000, and the third era lasts indefinitely.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "If any of the relevant parameters has fewer distinct values than eras, the parameter's final value will carry through the remaining eras.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "In this Smart Chain, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_halving", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value for both eras is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "One more feature of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " is the ability to transition from one era to the next with a linear progression, rather than a direct switch. To achieve this effect, in the initial era (the point at which the linear progression should begin) set the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_decay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "100000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " and the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_halving", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " value to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "For example, the following parameters create a Smart Chain with a \"slow start\" reward:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "This chain's block reward will grow linearly from 0 to 100 over 1000 blocks, then stay at 100 indefinitely.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "getblocksubsidy", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": " API method to verify your Smart Chain will work as expected at each relevant height: ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD getblocksubsidy ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "getblocksubsidy", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-eras-instructions" + }, + { + "text": "ac_feeds", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "The ac_feeds customization is in development. Please reach out to the Komodo team for more information or to use this customization in a production environment.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "The ac_feeds parameter is directly relevant to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "Prices Antara module", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ". The Prices module also requires the inclusion of the following parameters in the launch command of a Smart Chain: ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "-ac_cbopret", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "-ac_cc=n (where n >=2)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "Prices Antara module", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "-ac_cbopret", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "-ac_cc=n (where n >=2)", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "ac_feeds", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": " parameter supports the retrieval of data from sources accessed using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "http/https", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": " protocols and which return data as a json object.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "Antara Prices Module", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": " has an internal parser that processes the json object using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "RFC 6901 'Json Pointer' addressing", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ". The internal parser extracts the value specified by the json pointer or calculates the average value for the specified value paths, as explained below.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "Antara Prices Module", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "RFC 6901 'Json Pointer' addressing", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "This parameter also allows the addition of a custom shared object library (a ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ".so", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": " file) that has the necessary parsing function to retrieve values from the json object returned by a web api. This feature can be used when the json object returned is non-standard and the internal parser's features are not sufficient. In this event, the parsing function takes the json object and several configuration options, such as ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "customdata", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": ", as arguments and returns the price. The configuration options inform the function about the location of the price data within the json object.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "The value of this parameter is a quoted string that contains a json array of feed-configuration options.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds" + }, + { + "text": "Basic Usage", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "basic-usage" + }, + { + "text": "Each json object in the above json array defines a unique Feed. The json array includes details such as the Feed's name, the web api's url, the symbol for each of the items in the feed, and the path to acquire the price data for an item from the json returned from the web api.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "basic-usage" + }, + { + "text": "ac_feeds Example", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The above configuration object defines a single feed named \"stocks\" that contains prices of the symbols ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "AAPL", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "ADBE", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " retreived from the web api with the \"url\": ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "https://api.iextrading.com/1.0/tops/last?symbols=AAPL,ADBE", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The returned data is a json array and is processed by ac_feeds's internal parser to set the prices of the symbols ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "AAPL", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "ADBE", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " based on the data in the json array. This data is found in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "results", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " key.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "symbol", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " sets the symbol for the item in the price feed.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "valuepath", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " is a json \"pointer\" that indicates the method to extract the value of the price matching the symbol in the response. For example, when the parser encounters the value ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "\"/0/price\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": ", the parser selects the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "0th", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " element of the json array and reads the value of the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "price", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "multiplier", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " is the number by which the value extracted should be multiplied before being added to the feed. This convers numbers with decimal paces into integers.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "interval", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": " is the time in seconds between each refresh of the data from the web api. The minimum value is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "120", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feeds-example" + }, + { + "text": "Polling the Same url Multiple Times", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "The following example can be useful when polling the same url multiple times with a fixed subset of changing.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "The above example has the configuration for a single feed named \"metals\" that allows for the retrieval of the prices ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XAU/USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " (", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XAU_USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": ") and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XPT/USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " (", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XPT_USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": ") symbols from the web api hosted by ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "forex-data-feed.swissquote.com", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "The key ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "url", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " has the actual address of the web api, with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "%s", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " included to denote \"substitute\". All the urls formed by the substitution ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "%s", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " and with elements of the array stored in the key named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "substitues", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " are polled. Their responses are processed and added to the feed. As before, the key named \"results\" holds the data that indicates the method for processing the responses.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "In this case, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "results", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " object indicates that the price value to be added to the feed is the average of all values retrived from the responses based on the json pointers ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "\"/*/spreadProfilePrices/*/ask\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "\"/*/spreadProfilePrices/*/bid\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "Note the '*' symbols in the json pointers. These indicate that the response is an array and all the elements of the array will be used in the calculation of the average. When the key ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " is used in the configuration, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "result", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " parameter is a json object and is applied to the resulting json response from polling each url formed by using each substitute.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "There is also an optional parameter named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "quote", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " which is added to the symbol of the price in the feed. For example, using the values ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "\"quote\":\"USD\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " displays the prices as ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XAU_USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "XPT_USD", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " in the feed. The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "quote", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " value can also be empty if the strings in the array ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": " are complete symbols.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "polling-the-same-url-multiple-times" + }, + { + "text": "Method of Handling when the Internal Parser is Inadequate", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "When the internal parser of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "ac_feeds", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": " customization is inadequate for parsing responses from a web API, the following example can be of assistance.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "This feed configuration has a custom parser.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "The feed is differentiated from the previous feed by the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "customlib", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": " key, which contains the name of a shared library that contains the custom parser, and the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "customdata", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": " key, which is arbitraty data passed to the custom parser function in the shared library.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "method-of-handling-when-the-internal-parser-is-inadequate" + }, + { + "text": "-ac_feed Parameters", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "| Parameter | Type | Description | Example |\n| ------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| \"name\" | (mandatory, string) | the name of the configuration item | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"name\":\"stocks\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"url\" | (mandatory, string) | the url of the web api to be polled; if the url contains ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "%s", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": ", the configuration must also contain the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " parameter | with no ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "%s", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " - \"url\": ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "https://api.trade.com/1.0/", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "%s", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": ": \"url\" - ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "https://api.fin.com/api/?symbol=%sBTC", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"substitutes\" | (optional, array of strings) | a list of strings to substitute '%s' symbols in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "url", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " parameter to create requests; this supposes that each request returns a single value. If there is no ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " key array in the configuration, then a poll may return many values | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"substitutes\":[\"XAU\",\"XPT\"]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"quote\" | (optional, string) | the string to be added to each string in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " parameter to form a symbol of a currency pair, such as ``\"USD_BTC\"`, to represent the price data retreived from the feed | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"quote\":\"BTC\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"customlib\" | (optional, string) | the name of the custom-parser library | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"customlib\": \"libmyparser.so\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"results\" | (mandatory, json object or json array) | contains parameters to parse the json response from the web api; this is an ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "object", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " if the parameter", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "substitutes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "is present (in this case, the substitute is applied to the response from each poll, thus making the response arrive at one value ). Otherwise, the value is an ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "array", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " (this event allows for the retrieval of several values from the response). | see the structure and examples in the succeeding tables |\n| \"multiplier\" | (optional, number) | an integer multiplier that indicates the value by which the result(s) should be multiplied to create an integer; the default value is", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " | for forex prices,", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"multiplier\":10000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "for cryptocurrencies,", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"multiplier\":100000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |\n| \"interval\" | (optional, number) | the poll interval, given in seconds; this value should be greater than or equal to", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "120", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "; the default value is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "120", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "\"interval\":180\\", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-feed-parameters" + }, + { + "text": "Results Array Members", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "| Name | Type | Description | Example |\n| -------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |\n| \"symbol\" | (optional, string) | the symbol to be displayed in the feed for the value retrieved | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "\"symbol\":\"USD_BTC\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": " |\n| \"valuepath\" | (optional, string) | a json pointer to the value | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "\"valuepath\":\"/BTC/price\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": " |\n| \"averagepaths\" | (optional, array of strings) | a list of json pointers to values. If present, the average is calculated. In the position where an array index is expected in the json pointer, the value can be '*' -- this instructs the parser to use all available array elements | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "\"averagepaths\":[\"/prices/*/bid\", /prices/*/ask\"]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": " |\n| \"customdata\" | (optional, string) | arbitrary data passed to the custom lib function | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "\"customlib\":\"/price\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "The \"results\" array must be comprised of objects if the \"substitutes\" parameter is NOT used", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "If no custom library (customlib) is used, the \"symbol\" property should be set", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "If no custom library (customlib) is used, either the \"valuepath\" or the \"averagepaths\" property should be set", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-array-members" + }, + { + "text": "Results Object Members", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "| Name | Type | Description | Example |\n| -------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |\n| \"valuepath\" | (optional, string) | the json pointer to the value | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "\"valuepath\":\"/BTC/price\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": " |\n| \"averagepaths\" | (optional, array of strings) | a list of json pointers that point to values. If present, the average is calculated. In the position where an array index is expected in the json pointer, the value can be '*' -- this denotes that the parser must use all the available array elements | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "\"averagepaths\":[\"/prices/*/bid\", /prices/*/ask\"]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": " |\n| \"customdata\" | (optional, string) | arbitrary data passed to the customlib function | ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "\"customlib\":\"/price\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": " |", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "\"results\" must be an object if the \"substitutes\" parameter is used", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "The \"symbol\" parameter is not used in the \"results\" object as the symbol names are constructed from the strings in the \"substitutes\" array and in the optional \"quote\" property", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "If no custom library (customlib) is used, then either the \"valuepath\" or the \"averagepaths\" property should be set in each array item", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "results-object-members" + }, + { + "text": "Specification for the Custom Parser Library", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The custom json parser is a shared library that should be placed along with the Komodo source code with building instructions in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "src/cc/priceslibs", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " directory.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The custom library should implement a single function written in the C-language with its declaration specified in the file ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "pricesfeeds.h", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " as follows:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "On each call, the function should retrieve a single value and place it in the '*value' variable.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The function receives the following parameters:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "A string with the json returned by web api", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The symbol to retrieve", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "Custom data from the configuration", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The custom data might contain hints on how to find the value in the json object", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The custom data might contain hints on how to find the value in the json object", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "A multiplier used to convert the price value to integer", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "The function should return ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "success", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " scenario and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " if the function could not extract the value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "For an example implementation, see the custom parser lib example in the file named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "PricesResultParserSample.cpp", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " in the directory ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "src/cc/priceslibs", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": " in the Komodo source code.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "specification-for-the-custom-parser-library" + }, + { + "text": "Initializing Price Feed Configuration", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "The configuration object is named ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "feedconfig", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": " and is found in the file ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "src/cc/pricesfeeds.cpp", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "Use an existing configuration (config) item with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "name=\"basic\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": " as an example.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "initializing-price-feed-configuration" + }, + { + "text": "ac_founders", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " parameter creates a \"founder's reward.\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "This parameter requires ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": ". If the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " value is not declared, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " value defaults to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "35%", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": ". Also, either ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " OR ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " must be set.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_pubkey", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_script", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " value determines the percentage of block rewards paid to the founder. These rewards are not paid out immediately, but rather according to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " setting.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " determines the frequency at which the founder's reward is paid.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "The above parameters result in mining rewards of 100000000 satoshis (1 coin) per block, with a difference on every 100th block. On the 100th block exception, 1000000000 additional satoshis (10 coins) are paid to the founder's address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "The coins rewarded to the founder are created at the moment of payment, thus increasing the overall coin supply. See ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " for more details.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_perc", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " to send the founder's reward to a normal address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " to send the founder's reward to a multi-signature address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "Set ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders=1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " to stay compatible with most stratum implementations. Any other value requires team member ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "Blackjok3r", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "'s modifications to knomp using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "disable-cb feature", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": ". Please reach out to our team on ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "discord", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": " if you have further questions about how to set up a stratum.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "disable-cb feature", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "discord", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders" + }, + { + "text": "ac_founders_reward", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter functions in a manner that is similar to a combination of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameters.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "However, the value specified in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter is given in satoshis, as opposed to a percentage of the block reward. Also, the founder's reward does not accumulate over several blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter can be used in place of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter must be used in combation with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " and either ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_rewards", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " value is entirely independent of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "Consider the following combination of parameters, for example.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "This combination pays the pubkey address 10 coins every 10 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "Compare the above to the following combination.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "This combination pays the pubkey address 1 coin every 10 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_founders_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter is not compatible with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "ac_eras", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-founders-reward" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-7" + }, + { + "text": "A 777777-coin pre-mine, with a 5-coin block reward, and founder's reward of 10 coins sent to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-7" + }, + { + "text": "034916536402c0c4cf53b05e3b5d948aacafede47df640b33cb89bd28179cd2d3f", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-7" + }, + { + "text": " every 10 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-7" + }, + { + "text": "ac_halving", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "This is the number of blocks between each block reward halving. This parameter will have no effect if ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": " is not set. The lowest possible value is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "1440", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": " (~1 day). If this parameter is set, but ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_decay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": " is not, the reward will decrease by 50% each halving.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_decay", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-halving" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-8" + }, + { + "text": "A 777777-coin pre-mine, with a 5-coin block reward, and the block reward decreases by 50% every 2000 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-8" + }, + { + "text": "ac_name", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-name" + }, + { + "text": "This is the ticker symbol for the coin you wish to create. We recommended it consist only of numbers and uppercase letters.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-name" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-9" + }, + { + "text": "A simple Smart Chain", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-9" + }, + { + "text": "ac_notarypay", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "ac_notarypay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": " parameter rewards the notary nodes each time they participate in a notarization.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "This value should be set to the total amount of satoshis rewarded to all participating notaries in a notarization. The reward is then divided evenly between all participating notaries.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "On the KMD dPoW network the amount of notaries in a notarization is 13. Therefore, if the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "ac_notarypay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": " value is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "1300000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": ", each notary receives 1 coin for each notarization they perform.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "Notarizations happen on average every 10 blocks by default.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "This parameter is compatible with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "ac_eras", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-notarypay" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-10" + }, + { + "text": "A Smart Chain with 777777 pre-mined coins, a 5 coin block reward in the first era, a 10 coin block reward in the second era, paying 1 coin per notarization in the first era and paying 2 coins per notarization in the second era. The first era ends at block 10000. The second era ends at block 20000. After block 20000, there will be no block reward and no ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-10" + }, + { + "text": "ac_notarypay", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-10" + }, + { + "text": " reward.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-10" + }, + { + "text": "ac_perc", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc" + }, + { + "text": " parameter has two different functionalities depending on the configuration of the chain parameters.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc" + }, + { + "text": "ac_perc without ac_founders", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "When ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " is used without ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " the chain will follow an inflation-tax model. In this model, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " parameter is the percentage added to the block reward, and the transactions that allocate these rewards are sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " address. Naturally, for this configuration to function the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " parameter must be included.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_founders", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "For example, if ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_reward=100000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_perc=10000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": ", for each block mined the miner receives 100000000 satoshis (1 coin), and the owner of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " address receives 10000000 satoshis (0.1 coin, which is 10% of the miner's reward). The amount sent to the pubkey is not taken from the user, rather it is created at this point. Therefore, each transaction inflates the overall coin supply.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "The maximum amount of coins created via this method across all transactions per block is capped at ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "(1000000 * )", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "Vout 1 of each coinbase transaction must be the correct amount sent to the\ncorresponding pubkey. This only affects a miner trying to use a stratum. Team\nmember, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "Blackjok3r", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": ", developed a coinbase-override method for this purpose.\nPlease see ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "this\nrepo", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": " for\ndetails.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "this\nrepo", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-without-ac-founders" + }, + { + "text": "ac_perc with ac_founders", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-with-ac-founders" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-with-ac-founders" + }, + { + "text": "-ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-with-ac-founders" + }, + { + "text": " documentation for this functionality.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-with-ac-founders" + }, + { + "text": "-ac_founders", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-perc-with-ac-founders" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "This example coin combines both ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ". As described in the section, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "\"Notes on How ac_staked Functions\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ", the method of rewards for the coin will vary over time. The coins used to stake will be included in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " calculations until block height ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ". Therefore, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " that receives ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " block rewards will receive more for the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "\"Notes on How ac_staked Functions\"", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "Other coin details include that it is a 777777-coin pre-mine, with a 10-coin block reward, and the chain adjusts difficulty so that 50% of the blocks are mined via PoS, and 50% via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "For the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " blocks, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " address receives at least 1 coin for every mined block (an additional 10% above the block reward). The pubkey address also receives at least an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 10 coins are created and sent to the pubkey address. This includes the additional verification transaction in PoS blocks, meaning the pubkey address receives more coins for every PoS block. The extra amount sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " address derives from blocks that are mined via ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ", the rewards of which are calculated into ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "After the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " blocks, the rewards from ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " are no longer included in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": " rewards sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-11" + }, + { + "text": "ac_prices", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "(In Development)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "ac_prices", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": " parameter has to be used along with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "ac_cbopret", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": " parameter to supply TICKERS of the Cryptocurrencies whose BTC prices are to be included in the DTO.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "ac_cbopret", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-prices" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-12" + }, + { + "text": "A Smart Chain with a DTO that brings prices of various Cryptocurrencies vs BTC on-chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-12" + }, + { + "text": "ac_pubkey", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " parameter designates a pubkey for receiving payments from the network. These payments can come in the genesis block, in all blocks mined thereafter, and from every transaction on the network.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "This parameter is not intended for isolated use. It should only be activated on chains that also use at least one of the following parameters: ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": ", or ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "ac_import=PUBKEY", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " must be a 66 character string (a compressed pubkey). You can find this pubkey for any address by using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " command, and searching for the returned ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " property. The first two digits of a compressed ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " are only either ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "02", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "03", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": ". (The corresponding ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "private key", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": " must be present/imported to the wallet before using ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": ".)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-pubkey" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "This example coin combines both ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ". As described in the section, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "\"Notes on How ac_staked Functions\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ", the method of rewards for the coin will vary over time. The coins used to stake will be included in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " calculations until block height ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ". Therefore, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " that receives ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " block rewards will receive more for the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "\"Notes on How ac_staked Functions\"", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "Other coin details include that it is a 777777-coin pre-mine, with a 10-coin block reward, and the chain adjusts difficulty so that 50% of the blocks are mined via PoS, and 50% via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "For the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " blocks, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " address receives at least 1 coin for every mined block (an additional 10% above the block reward). The pubkey address also receives at least an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 10 coins are created and sent to the pubkey address. This includes the additional verification transaction in PoS blocks, meaning the pubkey address receives more coins for every PoS block. The extra amount sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " address derives from blocks that are mined via ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ", the rewards of which are calculated into ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "After the first ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " blocks, the rewards from ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " are no longer included in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": " rewards sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-13" + }, + { + "text": "ac_public", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": "If ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": "ac_public", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": ", zk-SNARKs are disabled, and all z address functionality is disabled. Therefore, all transactions on the blockchain are public.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-public" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-14" + }, + { + "text": "A public-only Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-14" + }, + { + "text": "ac_reward", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "Komodo recommends that this parameter be included on all Smart Chains. Please\nsee below for additional notes.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "This is the block reward for each mined block, given in satoshis.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "If both ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " are not set, the default block reward will be ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " satoshis and blocks will be on-demand after block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "127", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " (a new block will not be mined unless there is a transaction in the mempool).", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "Komodo recommends that ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " be included in all Smart Chains. This prevents the Smart Chain from becoming an on-demand blockchain, and therefore this increases the Smart Chain's security.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "To make a Smart Chain that has no block reward and is not on-demand, include the parameters: ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "-ac_reward=1 -ac_end=1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": ". The Smart Chain's first block will reward only the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "-ac_supply", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " value, after which the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": " value will be ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-reward" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-15" + }, + { + "text": "A 777777 coin pre-mine, with a 1 coin block reward that does not end. (Note that ac_supply is given in coins, while ac_reward is given in satoshis.)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-15" + }, + { + "text": "A 0 coin pre-mine with a 1-coin block reward that does not end. This is an example of a pure PoW Smart Chain that has no pre-mined coins.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-15" + }, + { + "text": "A 777777-coin pre-mine, with a 10-coin block reward, and the block reward decreases by 25% every 2000 blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-15" + }, + { + "text": "ac_sapling", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "ac_sapling", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": " parameter adjusts the block height of a Smart Chain's default sapling activation. (Sapling is an upstream privacy technology provided by ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "Zcash", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": ", of which Komodo is a fork.)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "Zcash", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "By default, sapling will activate at block 61 on a newly created Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "This can also be used to activate sapling prior to block 61. (Activating sapling prior to block 61 should not be done on a chain intended for production use.)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "To delay sapling activation, set ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "ac_sapling", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": " to a block height far in the future. For example, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "-ac_sapling=5000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": " will delay sapling activation to block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "5000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": ". At block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "5000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": " sapling will be activated.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "To support private transactions from the beginning, new AC chains must include the -ac_sapling=1 parameter, otherwise these chains will not be able to send shielded transactions until sapling activation, as old Sprout proofs are no longer supported. Additionally, all Sprout transactions have been prohibited since February 15, 2019 by consensus rules.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-sapling" + }, + { + "text": "ac_script", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " parameter enables the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " reward to be sent to a multi-signature address or any p2sh address. If this parameter is used, block 1 (the \"premine\") will be mined to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "This parameter requires that ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " also be active. If ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " is set, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " must not be.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " should be set to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "\"hex\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": " value of ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "\"scriptPubKey\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-script" + }, + { + "text": "Finding the scriptPubKey", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": "To find the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": "\"scriptPubKey\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": " value, first create a multi-signature address with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": "createmultisig", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": " command.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": "createmultisig", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "finding-the-script-pub-key" + }, + { + "text": "Command", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response" + }, + { + "text": "On a test chain, send coins to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response" + }, + { + "text": "bGHcUFb7KsVbSFiwcBxRufkFiSuhqTnAaV", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response" + }, + { + "text": "Command", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "command-2" + }, + { + "text": "Response (txid)", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-txid" + }, + { + "text": "Observe the resulting transaction with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-txid" + }, + { + "text": "getrawtransaction 1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-txid" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-txid" + }, + { + "text": "Command", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": "Set ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": "ac_script", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": " to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": "\"hex\"", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": " value from the returned json object.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "response-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "command-4" + }, + { + "text": "ac_staked", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " indicates the percentage of blocks the chain will aim to mine via Proof of Stake (PoS), with the remainder via Proof of Work (PoW). For example, an ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "ac_staked=90", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " chain will have ~90% PoS blocks and ~10% PoW blocks.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Measurements of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "PoS:PoW", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " ratio are approximate; the PoW difficulty will automatically adjust based on the overall percentage of PoW-mined blocks to adhere to the approximate ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "PoS", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "When creating a chain with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " parameter, the creation process is slightly different.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Start both the first and second nodes ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "without", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "-gen -genproclimit=0", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Once both are connected, execute ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "setgenerate true 1", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " on the node that should receive the pre-mine.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Observe the debug.log by executing ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "tail -f ~/.komodo//debug.log", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Wait for the Smart Chain to mine two blocks", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Execute ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "setgenerate false", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " to stop mining", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "All of the coins (including the pre-mine) are now located on the node that mined two blocks. Do not split them with a normal transaction. Rather, split them using this tool: ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "link", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "link", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "On the first node use 'setgenerate true 0' to enable staking.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "On the second node use 'setgenerate true 1' (or use a desired processor number instead '1') to enable mining.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Use the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "getbalance64", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " method to ensure that there are coins staking in all 64 segids before block 10. The utxos may appear on any list, including both staking and nonstaking.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "getbalance64", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Following the above instructions will ensure that the Smart Chain is stable.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "On a chain using a high percentage for PoS, it's vital to have coins staking by block 100. If too many PoW blocks are mined consecutively at the start of the chain, the PoW difficulty may increase enough to stop the chain entirely. This can prevent users from sending transactions to staking nodes.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "The Smart Chain developer must give the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " parameter a value for staking to function properly.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "It is vital to stake coins in all 64 segids. You can use the genaddresses.py script in ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "this repository", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": " to generate an address for each segid. This functionality will soon be integrated directly into the daemon.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "this repository", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "The first 100 blocks will allow PoW regardless of the ac_staked value.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "It is not possible to both PoW mine and stake on the same node. Therefore,\nwhen the chain's consensus mechanism allows both PoS and PoW, the chain\ncreator needs a minimum of two nodes mining/staking to keep the blockchain\nmoving.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-staked" + }, + { + "text": "Notes on How ac_staked Functions", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "Once staking is active, utxos available in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " file will stake automatically.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "On an ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " Smart Chain there are 64 global segments (", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "'s) to which all addresses and the corresponding utxos belong. These 64 ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "'s become eligible to stake blocks in turns. The segment a utxo belongs to is determined automatically, according to the address in which the utxo resides.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "You can see which segment an address belongs to by using the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " API command. You can use the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "getbalance64", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " API command to observe how your staked coins are distributed across the separate segids.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "getbalance64", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "Each staked block will have an additional transaction added to the end of the block in which the coins that staked the block are sent back to the same address. This is used to verify which coins staked the block, and this allows for compatibility with existing Komodo infrastructure.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "There are additional considerations when ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " is used in conjunction with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": ". The coins used to stake will be included in the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " calculations until the Smart Chain reaches block height ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "1000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": ". Therefore, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " address will receive more coins for each staked block compared to a mined block. After block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "1000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_perc", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " will no longer include the coins used for staking, and therefore the amount of coins sent to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": " address will normalize.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_perc", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_pubkey", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "ac_pubkey", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "notes-on-how-ac-staked-functions" + }, + { + "text": "Rules for Staking a Block", + "tagName": "h3", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "The following are the (current) rules for staking a block:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "Block timestamps are used as the monotonically increasing on-chain clock. It is important to have a synced system clock. Use the following sequence to sync your clock:", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "sudo apt-get install chrony", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "sudo systemctl restart chrony.service", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", then check ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "timedatectl", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " for ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "NTP syncronized: Yes", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "Block timestamps are used as the monotonically increasing on-chain clock. It is important to have a synced system clock. Use the following sequence to sync your clock:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "sudo apt-get install chrony", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "sudo systemctl restart chrony.service", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", then check ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "timedatectl", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " for ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "NTP syncronized: Yes", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "A utxo is not eligible for staking until a certain amount of time has passed after its creation. By default, between blocks ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "1", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " the amount of time required for a utxo to be eligibile is ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "blockheight * 3 seconds", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". After block ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", the required amount of time is 6000 seconds. More precisely, after block ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " a utxo is not eligible for staking until ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "100 * the expected blocktime (i.e. 1 minute)", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". For example, utxos on a one-minute block-time Smart Chain would be eligible for staking one-hundred minutes after their creation.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "A utxo is not eligible for staking until a certain amount of time has passed after its creation. By default, between blocks ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " the amount of time required for a utxo to be eligibile is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "blockheight * 3 seconds", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". After block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", the required amount of time is 6000 seconds. More precisely, after block ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "2000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " a utxo is not eligible for staking until ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "100 * the expected blocktime (i.e. 1 minute)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". For example, utxos on a one-minute block-time Smart Chain would be eligible for staking one-hundred minutes after their creation.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "The ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "s rotate through a queue to determine which ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " has the most likely chance to stake a new block. The formula that determines this is based on the block height: ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "(height % 64) = the segid0 for this height", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". For each block, the eligibility to stake a new block begins with ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", and then the eligibility expands to the next segment in queue at every two-second interval until the block is staked. For example, if ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " has not mined a new block within two seconds, the consensus mechanism opens up the priority to include the second, ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[1]", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". This continues either until the block is staked, or all 64 ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "'s are eligible to stake a new block. Once a block is staked, the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "height", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " of the blockchain changes, pushing the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " segment to the end of the queue, etc.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "s rotate through a queue to determine which ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " has the most likely chance to stake a new block. The formula that determines this is based on the block height: ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "(height % 64) = the segid0 for this height", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". For each block, the eligibility to stake a new block begins with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ", and then the eligibility expands to the next segment in queue at every two-second interval until the block is staked. For example, if ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " has not mined a new block within two seconds, the consensus mechanism opens up the priority to include the second, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[1]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": ". This continues either until the block is staked, or all 64 ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "'s are eligible to stake a new block. Once a block is staked, the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "height", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " of the blockchain changes, pushing the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid[0]", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " segment to the end of the queue, etc.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "By internal design, a utxo is more likely to win a block within a ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " based on age of the utxo and amount of coins. Regarding the age eligibiility, the maximum maturity level is one month (e.g. after reaching one month of age, a utxo's likelihood of staking a coin does not further increase). The age of the utxo is set by the ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "nlocktime", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " property of the utxo, or if ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "nlocktime", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " is not set, the age is determined by the utxo's ", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "blocktime", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " property.", + "tagName": "li", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "By internal design, a utxo is more likely to win a block within a ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "segid", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " based on age of the utxo and amount of coins. Regarding the age eligibiility, the maximum maturity level is one month (e.g. after reaching one month of age, a utxo's likelihood of staking a coin does not further increase). The age of the utxo is set by the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "nlocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " property of the utxo, or if ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "nlocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " is not set, the age is determined by the utxo's ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "blocktime", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": " property.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "rules-for-staking-a-block" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "A 777777-coin pre-mine with a 1-coin block reward. The chain adjusts difficulty to keep 90% of blocks mined via PoS, and 10% mined via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "A 777777 coin pre-mine with a 10-coin block reward. The chain adjusts difficulty so 2% of blocks are mined via PoS, 98% via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "A 777777-coin pre-mine, with a 1-coin block reward, block reward decreases by 50% every 2000 blocks, and the chain adjusts difficulty so 10% of blocks are mined via PoS, 90% via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "A 777777-coin pre-mine, a 10000-coin block reward, the block reward decreases by 40% every 2000 blocks, and the chain adjusts difficulty so 50% of blocks are mined via PoS, 50% via PoW.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "A 777777-coin pre-mine, a 1000-coin block reward, the block reward decreases by 25% every 100000 blocks, the block reward ends at block 1000000, and the chain adjusts difficulty so 1% of blocks are mined via PoS, 99% via PoW. The pubkey address receives an additional 0.5% above the block reward for each mined block. For example, before the first halving, the pubkey address will receive 5 coins (0.5% of 1000 coin block reward) for every mined block. After the first halving, the pubkey address will receive 3.75 coins for every mined block (0.5% of 750-block reward). The pubkey address receives an additional 0.5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 0.5 coins are created and sent to the pubkey address. This includes the additional verification transaction in PoS blocks, meaning the pubkey address receives more coins for every PoS block.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-16" + }, + { + "text": "ac_stocks", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "(In development)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "ac_stocks", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": " parameter has to be used along with the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "ac_cbopret", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": " parameter to supply TICKERS of the Stocks (available at ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "https://api.iextrading.com/1.0/tops/last", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": ") whose USD prices are to be included in the DTO.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "ac_cbopret", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "https://api.iextrading.com/1.0/tops/last", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-stocks" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-17" + }, + { + "text": "A Smart Chain with a DTO that brings prices of various Stocks vs USD on-chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-17" + }, + { + "text": "ac_supply", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "This is the amount of pre-mined coins you would like the chain to have.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "The node that sets ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "gen", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " during the creation process will mine these coins in the genesis block.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "gen", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "If ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " is not set, ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " must be set, and a default value of 10 coins will be used in the genesis block. If ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " is set, the pre-mined coins will be mined to the founder's reward address.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_founders", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " parameter should be set to a whole number without any decimals places. It should also be set to less than ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "2000000000", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " to avoid 64-bit overflows.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "An additional fraction of a coin will be added to the initial supply based on\nthe Smart Chain's parameters. This is used by nodes to verify the genesis\nblock. For example, the DEX chain's ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": " parameter is set to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "999999", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": ",\nbut in reality the genesis block was ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "999999.13521376", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": ". When using\n", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": ", the additional amount may be more than a full coin, and can add\nup to two digits left of the decimal point.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-supply" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-18" + }, + { + "text": "A simple Smart Chain with pre-mined coins and a block reward of 0.0005.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "examples-18" + }, + { + "text": "ac_snapshot", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": "ac_snapshot", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": " parameter defines the frequency with which a Smart Chain creates snapshots of the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": "address - balance", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": " data.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-snapshot" + }, + { + "text": "Example", + "tagName": "h6", + "path": "antara/setup/antara-customizations", + "closestElementReference": "example" + }, + { + "text": "The following example instructs the Smart Chain to execute a snapshot once every ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "example" + }, + { + "text": "1440", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "example" + }, + { + "text": " blocks. (Approximately one snapshot per day.)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "example" + }, + { + "text": "Payments Module Functionality", + "tagName": "h5", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "ac_snapshot", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": " parameter is required by the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "paymentsairdrop", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": " method of the Payments Antara Module.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "paymentsairdrop", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "The user first executes the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "paymentsairdrop", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": " method to create a Payments plan that is designed to distribute airdrops to addresses on the chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "paymentsairdrop", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "The user then executes the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "paymentsrelease", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": " method to release payments based on the amounts in the addresses in the most recent snapshot, as recorded by the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "ac_snapshot", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": " customization.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "The Payments Module features several customizations to control the nature of these automated airdrops.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "payments-module-functionality" + }, + { + "text": "ac_timelock...", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "-ac_timeunlockgte=satoshis -ac_timelockfrom=height -ac_timelockto=height", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "ac_timelock...", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": " parameters enforce \"coinbase locking\".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "In coinbase locking, the Smart Chain's block-reward feature behaves in a different manner compared to a default Smart Chain. Any block reward that is greater than or equal to the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "ac_timeunlockgte", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": " satoshi amount is temporarily locked. It will be unlocked (and therefore spendable) on a random block between the ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "ac_timelockfrom", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "ac_timelockto", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": " heights.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "The random unlock time for each reward is independent of the unlock time of other rewards.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "For the first 10000 blocks, any rewards that are greater than or equal to 10000000000 are locked until a random block between 10000 and 100000.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-timelock" + }, + { + "text": "ac_txpow", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "This parameter is in its final testing stages. Please reach out to us if you\nwould like to use it on a production chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "Setting ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "-ac_txpow=1", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": " enforces a transaction-rate limiter. This can help to prevent spam transactions on a Smart Chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "ac_txpow", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": " forces all transactions (other than coinbase transactions) to have a txid starting and ending with ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "00", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "This parameter is currently a proof of concept. Many of the traditional API commands, such as ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "sendmany", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": ", are not currently supported. Instead, use ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "createrawtransaction", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "signrawtransaction", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "createrawtransaction", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "signrawtransaction", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-txpow" + }, + { + "text": "ac_veruspos", + "tagName": "h2", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "This parameter is in its final testing stages. Please reach out to us if you\nwould like to use it on a production chain.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "ac_veruspos", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": " parameter is an alternative to ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "ac_staked", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "When activated, the chain uses ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "Verus", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "'s proof of stake implementation instead.", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "Verus", + "tagName": "a", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "The only valid value for this parameter is ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "-ac_veruspos=50", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": ". (", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "ac_veruspos", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": " does not have the same segid mechanism as ", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": "-ac_staked", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + }, + { + "text": ".)", + "tagName": "p", + "path": "antara/setup/antara-customizations", + "closestElementReference": "ac-veruspos" + } + ], + "antara/setup": [ + { + "text": "Antara Setup", + "tagName": "h1", + "path": "antara/setup", + "closestElementReference": "antara-setup" + }, + { + "text": "This section of the documentation contains information required to Setup Antara based Smart Chains.", + "tagName": "p", + "path": "antara/setup", + "closestElementReference": "antara-setup" + } + ], + "antara/tutorials/activate-antara-smartchain": [ + { + "text": "How to Activate Custom Consensus modules on an Existing Komodo Smartchain", + "tagName": "h1", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "how-to-activate-custom-consensus-modules-on-an-existing-komodo-smartchain" + }, + { + "text": "If you have an existing smartchain based on Komodo platform without Custom Consensus modules enabled, you can activate it at any time. Komodo daemon now supports the command-line parameter ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "how-to-activate-custom-consensus-modules-on-an-existing-komodo-smartchain" + }, + { + "text": "-ac_ccactivate=height", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "how-to-activate-custom-consensus-modules-on-an-existing-komodo-smartchain" + }, + { + "text": " , using which you can activate CC on a non-CC enabled chain in a future block height.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "how-to-activate-custom-consensus-modules-on-an-existing-komodo-smartchain" + }, + { + "text": "Example", + "tagName": "h2", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "The first existing chain which doesn't have CC enabled, whose startup command looks like this", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "It was a very easy way to start a chain using Komodo technology, with very few parameters. In order to activate CC in this chain, all we have to do is the following:", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_ccactivate=140", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " means, Custom Consensus modules are activated at block 140. You can set this parameter to any block height you want the CC to be activated.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "As this is a hardforking change, all nodes must update. If the chain is being notarized, Notary Nodes need to update to the new parameters as well for the notarization to continue without disruption past the activation block.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "Once CC is activated on a chain, do not change the startup script. If you do, that will create a new fork.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "By default, ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_ccactivate=height", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " uses ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_cc=2", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " (If you ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "recall", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_cc", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " is the parameter that defines the cluster of chains which can have cross chain Custom Consensus modules). But, you cant add -ac_cc=2 to the command line, as this will create a new fork. ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_ccactivate=height", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " will take care of those things automagically.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "recall", + "tagName": "a", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "Also, addressindex=1 and spentindex=1 need to be in the configuration file, but the daemon will take care of setting this up when ", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": "-ac_ccactivate=height", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + }, + { + "text": " is included as a command-line parameter.", + "tagName": "p", + "path": "antara/tutorials/activate-antara-smartchain", + "closestElementReference": "example" + } + ], + "antara/tutorials/advanced-series-0": [ + { + "text": "An Advanced Approach to Komodo's Antara Framework", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "an-advanced-approach-to-komodos-antara-framework" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "introduction" + }, + { + "text": "The following content is provided for the experienced C/C++ developer who desires to create new Antara Modules for Komodo Smart Chains.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "introduction" + }, + { + "text": "The content herein provides introductory instruction that can allow the developer to more easily read existing Antara-related code and follow advanced tutorials that examine specific Antara Modules.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "introduction" + }, + { + "text": "Link to Learning Path Outline", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "link-to-learning-path-outline" + }, + { + "text": "The following tutorial series is intended for advanced Komodo developers who intend to manipulate the default software setup. Please review the placement of this tutorial in ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "link-to-learning-path-outline" + }, + { + "text": "the Learning Path Outline section.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "link-to-learning-path-outline" + }, + { + "text": "the Learning Path Outline section.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "link-to-learning-path-outline" + }, + { + "text": "Antara Encompasses Several Technologies", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "antara-encompasses-several-technologies" + }, + { + "text": "The Antara Framework greatly enhances blockchain functionality. Antara allows a developer to use their Smart Chain's consensus mechanism to enforce arbitrary code. Antara even allows clusters of Smart Chains to work together in this effort.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "antara-encompasses-several-technologies" + }, + { + "text": "The level of freedom this grants to the blockchain developer is sometimes difficult to comprehend until one has either seen the technology in action or engaged with the technology directly.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "antara-encompasses-several-technologies" + }, + { + "text": "The Antara Framework takes into account several different advanced technologies. To limit the scope of our introduction, for now we focus only on one crucial aspect: \"CryptoConditions,\" or \"CC\" for brevity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "antara-encompasses-several-technologies" + }, + { + "text": "A Less Conceptual Discussion of CryptoConditions", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-less-conceptual-discussion-of-crypto-conditions" + }, + { + "text": "CryptoConditions in Brief", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-in-brief" + }, + { + "text": "CryptoConditions is a technology that allows for logical conditions and fulfillments to be evaluated as a part of consensus.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-in-brief" + }, + { + "text": "CryptoConditions is Based on an Industry-Wide Proposed Standard", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "CryptoConditions technology is not a new concept. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "Interledger", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": " team originally proposed this technology in 2016.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "Interledger", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "original proposal", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": " was that it would be an open-source industry-wide standard format. The Interledger team does not seem to have continued exploring the technology beyond the original proposal.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "original proposal", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "Komodo, on the other hand, found the CryptoConditions concept to be intriguing. In 2018, Komodo adopted this open-source technology into the suite of offerings in our Antara Framework.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "Our implementation uses many of the key ideas put forth by the Interledger team, and at the same time we depart in several significant ways. Those who are curious for specific details on this topic can explore the open-source code in the respective repositories.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-is-based-on-an-industry-wide-proposed-standard" + }, + { + "text": "A Brief Description of Komodo Enhancements", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-description-of-komodo-enhancements" + }, + { + "text": "At the simplest level, CryptoConditions operates with electronic signatures and hashes. The Komodo team enhanced CryptoCondition technology beyond the original specifications. Our implementation allows for a Smart Chain's consensus mechanism to evaluate the results of arbitrary code and to update state in the blockchain's data in a decentralized and secure fashion.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-description-of-komodo-enhancements" + }, + { + "text": "The important takeaway is that the Antara Framework encompasses several underlying technologies, one of which is CryptoConditions (CC). This technology allows a developer to add several enhancements to their Smart Chain. These enhancements include complex logical conditions and fulfillments, and arbitrary code. The enhancements rely on the consensus mechanism to ensure state integrity in a decentralized environment.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-description-of-komodo-enhancements" + }, + { + "text": "CryptoConditions Depends Upon Transactions and Booleans", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "At the most fundamental level, blockchain data is advanced only through transactions. A blockchain itself is nothing but a list of transactions, bound into blocks. By design, each transaction must be confirmed by the consensus mechanism.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "Therefore, all decentralized data that a developer wishes to create or use with their arbitrary code must first be added to a transaction. This transaction is then passed through the consensus mechanism. Transactions that are successfully confirmed are finally added to the blockchain, and therefore the data is also added.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "To take advantage of this functionality, a developer adds customized source code to the Antara Framework to form a new module. Whenever a relevant transaction occurs on the blockchain, the consensus mechanism calls the developer's module, validates the logical conditions and fulfillments as put forth by the arbitrary code, and either confirms or denies the transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "To simplify this process, Antara requires that the developer build their module such that each CryptoConditions (CC) transaction returns a boolean value as a part of the final results. If the returned boolean value is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": ", the transaction is approved.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "With this framework in place, the developer can also add any other data to be saved as a part of the transaction. This data is included in a special part of the transaction called an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": ", or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "opreturn", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": " for brevity. We will discuss opreturns in greater detail further on.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "OP_RETURN", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "Through Antara, the developer receives a powerful tool for creating and executing decentralized arbitrary code. A developer can also add data to any transaction, and their Smart Chain can utilize this data in future executions of arbitrary code. The primary requirement is that the arbitrary code return a meaningful boolean value as a part of the final result.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "crypto-conditions-depends-upon-transactions-and-booleans" + }, + { + "text": "Building an Antara Module is Harder Than Creating a Balance-Based Smart Contract", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "Antara Modules are fundamentally different than the \"smart contracts\" that are familiar on other blockchain platforms. The key difference is that Antara Modules directly rely on ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "\"unspent transactions,\"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": " which are called \"utxos\" for brevity. Balance-based smart contracts, on the other hand, rely on the total balance of funds held within an address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "\"unspent transactions,\"", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "Utxo-based modules are harder to create than balance-based smart contracts. However, because utxo-based modules leverage the existing Bitcoin-utxo system, they result in more powerful functionality that can even be more secure than a smart contract.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "For example, within balance-based smart contracts transactions do not have to pass a full review by the consensus mechanism of the underlying blockchain. Instead, most of the transaction verification happens within ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "a decentralized virtual machine", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": " that executes code written by a developer.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "a decentralized virtual machine", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "In this situation, all developers involved in a smart contract must maintain a high level of programming awareness to avoid disasters, such as those seen in ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "the Parity Attack.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": " Furthermore, a typical smart contract has access to the full balance held in the wallets of all users who are actively engaged with the contract. If a developer makes a mistake in their code, the full balance associated with the smart contract is vulnerable.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "the Parity Attack.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "In a utxo-based module these risks are reduced. One reason utxo-based modules are more secure is that every update of the blockchain's state must be executed as a Bitcoin-protocol based transaction — as opposed to using a virtual-machine with a developer-created transaction. Creating a transaction that passes the Bitcoin protocol's security checks, while more challenging, grants a higher level of security to the final code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "Furthermore, any mistakes that a developer does make in a utxo-based module risk only those funds that are held in utxos that are committed to the Antara Module — as opposed to the entire balance of the wallet associated with a smart contract.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "Balance-based smart contracts that use the popular virtual-machine model cannot compare to the security measures offered by the Bitcoin-protocol's consensus mechanism that is featured in a Komodo Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "As the developer engages with Antara Module development, they can learn how utxo-based modules allow for increased speed in achieving consensus, greater simplicity in software architecture, more flexible functionality between Smart Chains, and many more superior features.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "building-an-antara-module-is-harder-than-creating-a-balance-based-smart-contract" + }, + { + "text": "A Brief Look at an Antara Module Template", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "The following file, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "customcc.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": ", is a blank template a developer can use when beginning the creation of a new Antara Module. Take a brief look to familiarize yourself with the essential layout.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Link to customcc.cpp file", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Link to customcc.cpp file", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "The key takeaway is that the entrypoints to Antara's CryptoConditions technology are broken down into a few functions and tables. Once the developer grasps the nature of working with these entry points, building Antara Modules becomes a simple exercise in the common aspects of software development.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Komodo already offers many SDK functions, tutorials, and best practices to simplify the learning curve and development process, and we continue to develop more of these sources of assistance.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Before the developer can begin creating new Antara Modules, there are several key concepts to understand in the Bitcoin Protocol.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Link to Next Tutorial in the Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + }, + { + "text": "Link to Next Tutorial in the Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-0", + "closestElementReference": "a-brief-look-at-an-antara-module-template" + } + ], + "antara/tutorials/advanced-series-1": [ + { + "text": "Advanced Series — Smart Chain Development Basics", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "advanced-series-smart-chain-development-basics" + }, + { + "text": "Understanding Utxos is Important in Antara Modules", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "In the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Learning Launchpad Outline", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": " the reader received encouragement to understand the basics of blockchain technology in preparation for this tutorial. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Core Technology Discussions section", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": " provides a useful introduction to most concepts that are necessary for blockchain engineers.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Learning Launchpad Outline", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Core Technology Discussions section", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "A key basic concept to understand is the unspent transaction, or utxo. For a brief reminder on the nature of a utxo, read ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "this section in the Core Technology Discussions section.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "this section in the Core Technology Discussions section.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Observe the data structure of a transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "This transaction has an id, which is given as one of the first key-value pairs.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "The term, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": ", stands for transaction id.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Within this transaction there are two arrays. One contains the vins and the other contains the vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "A vin and a vout are short for \"vector in\" and \"vector out\".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "The vins and vouts can be considered to be sub-transactions that take place within the main transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-utxos-is-important-in-antara-modules" + }, + { + "text": "Observing the vin", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "The vins in a transaction consume unspent values from previous transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "Observe the first (and only) vin in this transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "This vin takes funds from an address, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "RMhKqTr1ssari1wFoVFSSjdLsBXPkDdAac", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "The amount of funds the vin takes from that address is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "\"value\": 0.10000000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observing-the-vin" + }, + { + "text": "Observe the vouts", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "To spend these funds, the transaction creates the vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "Observe the two vouts of this transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "The first vout sends ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "0.04995000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": " coins to the same address we saw in ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "vin0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "The second vout sends ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "0.05000000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": " coins to a new address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "If we take the total value of all vins and subtract the total value of all vouts, we see that there is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "0.00005000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": " difference.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "By design, any leftover amount not claimed by a vout is given to the miner that mines the block that contains this transaction. This is the mining fee.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "observe-the-vouts" + }, + { + "text": "Making Inferences", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "To summarize, the utxo takes ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " coins from an address, sends ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.04995", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " back to the same address, and then sends ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.05", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " coins to a new address. The leftover amount is automatically given to the miner of the block.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "This suggests that the user who created this transaction desired to send ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.05", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " coins to the new address. The user may have created this transaction using the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " API method.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "sendtoaddress", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "From here, the software daemon took control. The software found that within the user's wallet was an existing value of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " coins. This became the vin for the transaction. The first vout the software created was sent back to the address in the user's own wallet. This ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.04995000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " value is the \"change\" from the transaction. The second vout contains the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "0.05", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": " the user intended to send to the new address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "making-inferences" + }, + { + "text": "Utxo is an Unspent Vout", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "A vout that can be spent, but has not yet been spent, is a utxo.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "To determine whether a vout is spent, the developer cannot look directly at the data in a transaction. Rather, the developer makes a requst to the software to look at all following transactions on the blockchain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "If there is a later transaction that has a vin that consumes the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "0.05", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": " vout, that would indicate that the vout is spent. If there is no such transaction, then the vout is still a utxo.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "A transaction can have multiple vouts, and therefore each transaction can technically contain multiple utxos.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "Often times, in conversation developers may call a full transaction a \"utxo,\" for simplicity's purposes. Yet, for developers to truly understand the underlying concept, they should understand that \"utxo\" refers to a vout, not to a txid.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "utxo-is-an-unspent-vout" + }, + { + "text": "A Utxo is Not Spent Until Confirmation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-utxo-is-not-spent-until-confirmation" + }, + { + "text": "A utxo is not considered spent under any circumstances until the transaction that spends it receives confirmation from the Smart Chain's consensus mechanism. Even when the spending transaction is waiting in the mempool, the utxo remains unspent until the spending transaction receives confirmation from the network.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-utxo-is-not-spent-until-confirmation" + }, + { + "text": "A useful comparison here can be found by observing people seeking to attend a ticketed event, such as a music concert. To gain acceptance into the music hall, a person must first have a ticket. We compare this to the creation of a txid. The person must wait in line. This is similar to the mempool. The person must have their ticket stamped, and this is akin to the consensus mechanism approving the transaction. Then the person may enter the music hall. This is the transaction becoming a part of the blockchain history.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-utxo-is-not-spent-until-confirmation" + }, + { + "text": "The essence of blockchain technology is that a utxo can only be spent once. In building modules for the Antara Framework, we constantly keep this principle in mind, and the consensus mechanism is our guide.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-utxo-is-not-spent-until-confirmation" + }, + { + "text": "Formation of a Transaction", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "Contrary to what one may think, a blockchain transaction is not a simple accounting entry that says, \"Address X pays Y amount of funds to address Z.\" Rather, a transaction also contains a Bitcoin script that must be satisfied before the requested funds can be spent.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "The manner in which transactions are created has evolved over time. Originally, the process consisted only of a \"Pay to Pubkey\" script, or \"P2PK\" for brevity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "In a P2PK transaction, the software checks the cryptographic signature of the public key attempting to spend funds and if the signature is correct the transaction is approved.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "These simple transactions are common in coinbase transactions. (Recall that a coinbase transaction is the transaction that mints new coins onto a blockchain. Coinbase transactions are most frequently encountered as block rewards for miners/stakers, and in the Gensis Block of a chain.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "If the reader would like a more thorough technical explanation of P2PK transactions, tutorials and explanations abound across the web. ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "Here is one such example.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "Here is one such example.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "formation-of-a-transaction" + }, + { + "text": "Quantum Computers, Cold Addresses, and Change", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "As the early Bitcoin community gained experience, Satoshi Nakamoto foresaw a potential danger. Far in the future, a quantum computer will be able to break the encryption protection of any pubkey address and thereby steal funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "To solve this problem, Satoshi invented a method to have a \"cold address.\" Cold addresses are based on a pubkey, but there are various cryptographic functions that separate the two.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "A user can send their funds to a cold address without revealing the associated pubkey. This allows the user to keep their pubkey private, and thus protect their funds from being spent even by a quantum computer, so long as the relationship between the cold address and the pubkey remains a secret.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "Naturally, to spend their funds, the user must utilize their pubkey to create the transaction signature, and thus they reveal the relationship between the cold address and the pubkey. Once the secret is revealed, the cold address no longer offers any protection against quantum computers.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "This encouraged Satoshi to redesign the Bitcoin protocol so that, by default, each time a utxo is spent the leftover amount in the utxo is sent to a new cold address. This is the reason for the \"change\" addresses that a user sees in their wallet each time they send funds on a default Bitcoin-based blockchain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "quantum-computers-cold-addresses-and-change" + }, + { + "text": "Smart Chain and CryptoConditions' Pubkey Parameter Disables Change Addresses", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "An astute reader may note that in the above example transaction, the \"change\" did not go to a new address, but rather to the same address from which the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": " coins were taken. The reason for this pertains to CryptoConditions (CC), as the transaction was performed on a Smart Chain that utilizes CryptoConditions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "When using CC technology, the user typically must provide a designated pubkey via the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": " launch parameter. The reason for this will be discussed later.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "A side effect of using this ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": " parameter is that once this is set, the software will stop creating new \"change\" addresses with each transaction. Instead, the software will send the \"change\" back to the same cold address that is associated with the pubkey.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "If a user wants to keep funds safe from quantum computers, there are separate CC-related modules that provide protection. For example, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "the upcoming Dilithium Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "the upcoming Dilithium Antara Module.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "smart-chain-and-crypto-conditions-pubkey-parameter-disables-change-addresses" + }, + { + "text": "Pay to Pubkey Hash Transactions", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "Transactions that send funds to a cold address are called \"Pay to Pubkey Hash\" transactions, or P2PKH for brevity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "When performing a P2PKH transaction, the protocol has a few extra steps to perform. The protocol must check that the hash of the pubkey (which is included as a part of the cold address) is appropriately matched to the pubkey itself. The structure of a P2PKH transaction includes opreturns that instruct the daemon to perform these verification steps.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "The Internet contains many thorough explanations of P2PKH transactions. For more information, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "here is one such tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "here is one such tutorial.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "Once a cold address is associated with a pubkey, the Bitcoin protocol no longer attempts to use these quantum-secure P2PKH transactions, as they require an extra 25 bytes of data space. Instead, the protocol reverts to the original P2PK transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "CryptoConditions typically requires the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": " Antara Customization parameter to be enabled. One of the effects of this parameter is that each time a user makes a transaction, the \"change\" is automatically sent back not to a new cold address, but rather to the pubkey included in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": " parameter. Therefore, as user transactions are already always returning to a default pubkey, the Antara Module developer can simply skip P2PKH transactions altogether and use only P2PK transactions instead.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-pubkey-hash-transactions" + }, + { + "text": "Pay to Script Hash Payments", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "In addition to P2PK transactions, the original Bitcoin protocol allowed for any type of script opcode in transactions. This seemed like a promising idea at first, but developers quickly discovered that this level of freedom also brought instability. Satoshi limited the options available, and P2PK and P2PKH become the overwhelming majority of all transctions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "The community still desired the freedom to execute scripts as a part of transactions, and this eventually led to the Pay to Script Hash, or P2SH, standard.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "This method allows the user to lock their funds to the hash of a script. The script itself is typically designed to ensure that the funds are spent in a secure manner, and this is often through a P2PK or P2PKH transaction that is included in the script.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "To unlock the funds, a user provides the original script. The blockchain daemon checks that the script matches the hash, executes the script, and the funds are unlocked.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "For more information about P2SH transactions, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "a useful tutorial can be found here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "a useful tutorial can be found here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "pay-to-script-hash-payments" + }, + { + "text": "Understanding Op Codes", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "Each of the above transactions relies on an operation code, also called \"opcode\", to execute.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "For example, the P2PKH transaction relies on the OP_CHECKSIG opcode ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "172", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": " to execute. The opcode is included as a part of the transaction data, typically as a header and in hex format.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "When the daemon detects the opcode in the raw data, the daemon understands what is being asked by the developer and performs the appropriate action.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "Originally, Bitcoin had many opcodes available. Satoshi disabled a large number of opcodes for stability reasons. To see a list of current opcodes in Bitcoin, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "visit the Bitcoin wiki.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "visit the Bitcoin wiki.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "understanding-op-codes" + }, + { + "text": "A New Op Code: OP_CheckCryptoCondition", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "The CryptoConditions standard itself relies on a new opcode, OP_CHECKCRYPTOCONDITION, or OP_CCC for brevity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "This opcode is not included in the Bitcoin protocol. Rather, the OP_CCC standard was originally written and designed by the Interledger team. The full, original OP_CCC specification is a thirty-three page document, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "which you can see here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "which you can see here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "There is no need to read and master the entire original proposal, however, as Komodo's Antara Framework automates much of the underlying aspects. The primary takeaway is that the developer uses OP_CCC to create a \"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "CryptoConditions transaction", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": ",\" also called a \"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "CC transaction", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "\" for brevity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "A CC transaction includes several special features. This can include a logical condition that must be met for the utxo the transaction creates to be spent in the future. A CC transaction can also include a fulfillment of the logical conditions set forth in a previous CC transaction. The binary encodings of these CC transactions can be used in a Smart Chain utxo. These features are the foundation of a CC-related Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "OP_CCC provides many relatively convenient use cases, and the developer can expand on these use cases when necessary. For example, a standard use case of OP_CCC is a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "1of1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": " CC script. This type of CC transaction requires only 1 signature, and is accompanied by a few custom constraints. Many of the current default Antara Modules rely on the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "1of1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": " script OP_CCC.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "A more intricate use case of OP_CCC, on the other hand, can be found in the upcoming Payments Module. This module uses a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": " CC script, which allows for one of two signatures to sign a CC transaction, and the script also features several customized constraints.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "Link to Next Tutorial in the Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + }, + { + "text": "Link to Next Tutorial in the Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-1", + "closestElementReference": "a-new-op-code-op-check-crypto-condition" + } + ], + "antara/tutorials/advanced-series-2": [ + { + "text": "Advanced Series — Antara Module Development Basics", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "advanced-series-antara-module-development-basics" + }, + { + "text": "The Eval Code", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "In the Komodo source code, each Antara Module has an associated arbitrary number, called an \"eval\" code. This code can be any digit between ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "255", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": ", there can be only one code per module, and each code is currently one byte in size. To add a new Antara Module, the developer begins by adding a new eval code to the table of all active eval codes on their Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "We define all eval codes in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "~/komodo/src/cc/eval.h", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": " file. The following eval codes represent the essential, default modules in a Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "~/komodo/src/cc/eval.h", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "As the eval code must range between ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "255", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": ", a Smart Chain can have up to 256 total modules. The developer of a Smart Chain can determine which modules to add from the available modules in the ecosystem. At this time, we do not yet have 256 total modules, and therefore there is no need to choose.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-eval-code" + }, + { + "text": "Validation Code", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "validation-code" + }, + { + "text": "The developer adds validation code that will be executed any time the daemon encounters a transaction bearing the relevant module's eval code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "validation-code" + }, + { + "text": "This is where the true power of CC begins. When validating a normal transaction, the daemon has access only to information included in the transaction itself. With a CC transaction, however, the daemon is running arbitrary code, and therefore anything is possible. The validation code can look through the blockchain history, observe transactions in the mempool, and even utilize Antara's cross-chain technology.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "validation-code" + }, + { + "text": "Technically, OP_CCC scripts do not have a required structure. The scripts only need to follow the general structure of the initial layout. The developer may follow the general guideline, as provided in our templates and tutorials. This allows the developer to code and debug their OP_CCC related modules in an efficient manner.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "validation-code" + }, + { + "text": "Flexbile Pubkey Expression", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "To understand how CryptoConditions (CC) manages addresses and scripts, the developer should first understand a few basic concepts regarding pubkeys.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "Originally, Bitcoin pubkeys were 64 bytes, as opposed to the 33 byte pubkeys of today. The 64 byte pubkeys had a left half and a right half which were used for internal functions in the daemon. Using cryptographic methods, a developer could derive the left half of the function from the right half, and vice versa.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "Early Bitcoin developers took advantage of the ability to derive one half of the pubkey from the other, and compressed the pubkey to a smaller size. They also instituted prefixes that informed the daemon whether the pubkey was odd, even, or large (", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "02", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "03", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "04", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": " respectively). In the end, the developers compressed the 64 byte pubkey into a 33 byte version.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "Today, there are multiple ways to express a pubkey. There are compressed and uncompressed versions of the pubkey, and the pubkey can also be expressed as two different base58 encoded addresses. All of these are associated with the same private key.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "flexbile-pubkey-expression" + }, + { + "text": "Pubkeys and CC Addresses", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "When working with software based on the Bitcoin protocol, a common problem a developer encounters is found in creating an address that is associated with a script. A frequent solution is to hash the script and use the hash as the address. Komodo uses this solution in the Antara CC implementation. Using this method, the CC script serves as the CC address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "With this in mind, the essential structure of a CC script is as follows. (The automatically generated content is handled by the daemon's internal functions and can be ignored.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "Each CC script utilizes the eval code of the module to which the CC script belongs. Since the CC script includes both the pubkey and the module's unique eval code, a pubkey makes a unique CC address for each module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "Funds that are sent to a CC address can be spent only by the module with the appropriate eval code, and therefore funds created and associated with an eval code maintain scarcity within this module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "A common and simple CC script exists in nearly all of the default Antara Modules. The structure of this script consists of a single signature from a pubkey and CC validation. This is essentially the equivalent of a P2PK Bitcoin script; the CC validation returns ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": ", whereas the P2PK Bitcoin script returns ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "pubkeys-and-cc-addresses" + }, + { + "text": "Global CC Address", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "global-cc-address" + }, + { + "text": "By convention, each Antara Module has a global CC address where the privkey is publicly available. As usual, spending from this global CC address requires that the spender meet all validation rules set forth by the developer. Therefore, the lack of privacy for the private key is not an issue.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "global-cc-address" + }, + { + "text": "One purpose for this global CC address is to create a repository that is global (within the module) for information regarding specific instances of this module on the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "global-cc-address" + }, + { + "text": "For example, typically the design of an Antara Module requires that each time a user initiates an instance of the module, the user also sends a small amount of funds to this global CC address. This transaction contains data about the instance the user desires to create. Other users on the network can retrieve the data in this global CC address, and thereby gain knowledge about the current state of all module instances on the Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "global-cc-address" + }, + { + "text": "Vector Inputs and Outputs", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "vector-inputs-and-outputs" + }, + { + "text": "A transaction in the Bitcoin protocol consists of input and output vectors, called \"vins\" and \"vouts\" for brevity. The vins take funds from utxos, combine them into one \"spend\" transaction, and create new vouts. Some of the vouts may be new utxos.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "vector-inputs-and-outputs" + }, + { + "text": "Each of the vouts has a spend script that must be satisfied before the vout can be spent.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "vector-inputs-and-outputs" + }, + { + "text": "Suppose vout0 is a normal utxo with a small amount of funds and the receiver of this utxo desires to spend it. They create a new transaction with a vin that consumes vout0. This vin must satisfy any scripts that are contained in vout0.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "vector-inputs-and-outputs" + }, + { + "text": "CC Enhances the Script Between Vin and Vout to Advanced Levels", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "cc-enhances-the-script-between-vin-and-vout-to-advanced-levels" + }, + { + "text": "A key power of CryptoConditions (CC) is the ability to enhance the script that must be satisfied between a vin and a vout. In CC, the vout contains the logical condition, and the vin contains the logical fulfillment.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "cc-enhances-the-script-between-vin-and-vout-to-advanced-levels" + }, + { + "text": "With access to arbitrary code, CC allows the Bitcoin protocol to rival the \"smart contracts\" common on other platforms. Yet, CC accomplishes this without requiring the virtual-machine counterpart that other smart-contract platforms require. Instead, the consensus mechanism is directly engaged with the scripts in the vins and vouts of transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "cc-enhances-the-script-between-vin-and-vout-to-advanced-levels" + }, + { + "text": "The Bitcoin protocol's consensus mechanism is constantly placed under the most intense of pressure in the industry, and therefore is likely the most reliable consensus mechanism available. The ability to engage the consensus mechanism in arbitrary code while not changing the consensus mechanism itself grants Antara security and stability. The utxo system of the Bitcoin protocol also reduces the likelihood that modules themselves will contain bugs internally. (The reader should note that CC cannot eliminate attack vectors altogether.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "cc-enhances-the-script-between-vin-and-vout-to-advanced-levels" + }, + { + "text": "The Many Possibilities of OC_CHECKCRYPTOCONDITION", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "Consider the implications of the combination of possibilities contained in this new opreturn, OP_CCC. As there can be up to 256 eval codes per Smart Chain, there can be up to 256 different types of CC outputs per chain. Each CC transaction can contain multiple vins and vouts, each of which provides CC related fulfillments and conditions. Also, each module has a globally available CC address to allow for chain-wide functionality, making the possibilities per vin or vout 257.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "Observe the essential structure of a transaction with 3 vins and 2 vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "With the possibilities of OP_CCC, the combination allows for 1.12e+12 possibile combinations.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "This is a dramatic increase in the possibilities over the limits of the original Bitcoin protocol.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "While the possibilities of a transaction are essentially limitless, the developer must create validation code that ensures the module and its transactions function as intended. Therefore, in practice the developer often limits the possibilities to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "3", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": " types per vin or vout.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "the-many-possibilities-of-oc-checkcryptocondition" + }, + { + "text": "Introduction to the Remote Procedure Call (RPC)", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "A Remote Procedure Call (RPC) allows a module developer the ability to offer easy access to their module's functionality. The role of the RPC calls are to create properly signed raw transactions that are ready for broadcasting.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "The developer places the command name of each RPC they desire to create into a table in the CC source code. From this table, the built-in komodo-cli software is able to access and execute the RPC. In this manner, developers of all skills levels can integrate Antara Modules into other software.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "Antara Modules can have any RPCs the developer desires, or even have no RPCs. By convention, each Antara Modules has a few default RPCs: ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "list", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "info", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ". For example, the Dice module has, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "diceaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "dicelist", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "diceinfo", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": ". Respectively, these RPCs return information about a CC-related address, the list of all instances of this module on the Smart Chain, and information about the chain-wide state of the module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-the-remote-procedure-call-rpc" + }, + { + "text": "Creating a Global CC Address", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "The following code from the Faucet module serves as an example of the manner in which we begin the creation of a global CC address for this module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "For a template of this logic pattern, view the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "CCcustom.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": " file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "CCcustom.cpp", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "Link to CCcustom.cpp file", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "Link to CCcustom.cpp file", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "Note that at the bottom of the file there is a switch statement. There, the above values are copied into an in-memory data structure for each CC type. This allows the entire CC codebase to access the global CC addresses in a standard manner.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "To create a global CC address for a new module, follow these steps.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "creating-a-global-cc-address" + }, + { + "text": "Create a value using getnewaddress", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "With the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": " daemon running, use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": " RPC with ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": " to get a new address. (You may use any Komodo Smart Chain, such as the KMD main chain, for this procedure.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "getnewaddress", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "Copy this value into the first line of the code. For example, in the Faucet code above the result is as follows.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "create-a-value-using-getnewaddress" + }, + { + "text": "Retrieve the pubkey using validateaddress", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": " RPC with ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": " to obtain the pubkey of the new normal address from the previous step.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "Place the returned value into the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "[67]", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": " line of code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "retrieve-the-pubkey-using-validateaddress" + }, + { + "text": "Restart the Daemon with the pubkey", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": "Stop the daemon and restart with the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": " launch parameter enabled. Use the pubkey from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": " RPC as the pubkey value.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "restart-the-daemon-with-the-pubkey" + }, + { + "text": "Ensure the Myprivkey Function is Properly Enabled", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": "Check that the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": "if ( 0 )", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": " statement is enabled in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": "Myprivkey()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": " function in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": "/src/cc/CCutils.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": " file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "ensure-the-myprivkey-function-is-properly-enabled" + }, + { + "text": "Add the First RPC", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Add a line to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "/src/server.h", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " file to create the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " function for the module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Update the commands array in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "/src/server.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Add the code for ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " into the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "/src/wallet/rpcwallet.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " source file:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " with your eval code name. For example, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "EVAL_FAUCET", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "EVAL_ASSETS", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": " with your module name. For example, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "faucetaddress", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "add-the-first-rpc" + }, + { + "text": "Obtain the CCaddress", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": " RPC call and use the returned value to complete the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": "CCaddr", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": " line of code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-c-caddress" + }, + { + "text": "Obtain the privkey in Hex Format", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-privkey-in-hex-format" + }, + { + "text": "From the response returned by the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-privkey-in-hex-format" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-privkey-in-hex-format" + }, + { + "text": " RPC, use the hex value of the private key to complete the appropriate line of code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-privkey-in-hex-format" + }, + { + "text": "Stop the daemon and restart it using the new pubkey.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "obtain-the-privkey-in-hex-format" + }, + { + "text": "Copy the Existing Default RPCs to the New Module", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": "From the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": "/src/wallet/rpcwallet.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": " file, copy and paste the existing RPC functions to create new versions for the new module. Change the eval code and customize the functions as desired.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": "Add an entry into the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": "/src/cc/eval.h", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": " file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "copy-the-existing-default-rpcs-to-the-new-module" + }, + { + "text": "Introduction to Validation", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "A large portion of Antara Module customization pertains to the manner in which the validation code constrains CC transaction input.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "The CC validation code is called at the time that the consensus mechanism is validating a CC transaction. The consensus mechanism only calls the CC validation code and waits for a response of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": ". Whether or not the CC validation code is effective is a matter for the developer to resolve.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "The developer is responsible for properly designing both the validation code and the RPC implementations. Both should work together to ensure that RPCs cannot create transactions that should not exist, and the CC validation code should only validate proper transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "The CC validation code is already locked in the main loop of the Bitcoin protocol at the time the code is called. Care should be taken with the CC validation code to ensure that the code does not cause a deadlock on the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-2", + "closestElementReference": "introduction-to-validation" + } + ], + "antara/tutorials/advanced-series-3": [ + { + "text": "Advanced Series — Preparing for Heir Development", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "This tutorial in the series assists the reader in preparing to later build a full simplified prototype of the default ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "Heir Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "Heir Antara Module.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "The primary aim for buildling the Heir prototype is to give the developer direct engagement with Antara Module development, with a focus on the CryptoConditions (CC) aspects. This process will give the developer a better grasp of the broad potential of the Antara framework.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "Furthermore, in the process of completing this tutorial the developer will learn how the source code is organized.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "advanced-series-preparing-for-heir-development" + }, + { + "text": "A Conceptual Understanding of the Intended Product", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "To gain an idea of the intended result, read the introduction of the Heir Module API. (Read until the start of the section named ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "Heir Module Flow", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": " and then pause.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "Link to Introduction to the Heir Antara Module", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "Link to Introduction to the Heir Antara Module", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "The basic concept to understand is that the Heir module allows the owner of a Smart Chain digital asset to designate an inheritor of the asset, should the owner become inactive on the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "In terms of design, this is a relatively straightforward Antara Module, which is one reason we use it here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "a-conceptual-understanding-of-the-intended-product" + }, + { + "text": "Complete the Heir Module Flow Section (Optional)", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "Before we begin the development process, it may be helpful to first experiment with the flow of RPC commands for the existing Heir module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "This section is optional, but recommended.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "At this point in the tutorial series, the reader can either create a new default Smart Chain to test the Heir Module, or they may use an existing Smart Chain, such as DOC.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "Link to instructions to create a new default Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "Link to instructions to create a new default Smart Chain.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "The reader will need to create a new default Smart Chain either way as a part of the tutorial, but if the reader chooses to use the DOC Smart Chain for this optional step, the reader has the opportunity to observe another Antara Module in action. This presents a learning opportunity.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "The module we refer to here is the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "Faucet Antara Module", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "Faucet Antara Module", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-the-heir-module-flow-section-optional" + }, + { + "text": "On the Relevance of the Faucet Module", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "The Faucet Module allows a user to tap into existing funds on a public Smart Chain. This module provides a simple example of the nature of an Antara Module for our study.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "Faucet allows a user to lock an arbitrary amount of funds within an Antara address. Other users on the network are able to withdraw funds from this Antara address in small portions. To prevent spam requests, Faucet requires a small amount of proof-of-work from the requesting user's node.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "From this outline, we observe the basic business logic of the Faucet module. The module involves storing funds in a designated address, the creation of a faucet that can disburse funds, and the ability to limit the rate at which funds are withdrawn.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "Compare this to our desired Heir module. The Heir module's business logic must allow a designated address the ability to inherit designated blockchain funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "In both cases, the module's business logic is bound to transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "on-the-relevance-of-the-faucet-module" + }, + { + "text": "Launch the DOC Smart Chain (Optional)", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "launch-the-doc-smart-chain-optional" + }, + { + "text": "The live community test chain, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "launch-the-doc-smart-chain-optional" + }, + { + "text": "DOC", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "launch-the-doc-smart-chain-optional" + }, + { + "text": ", has the Heir Module enabled and can serve the purpose of providing a live demonstration.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "launch-the-doc-smart-chain-optional" + }, + { + "text": "Launch the chain as follows.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "launch-the-doc-smart-chain-optional" + }, + { + "text": "Create a pubkey", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": "Use the following guide to create an Antara pubkey and address on the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": "DOC", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": " Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": "Link to Antara pubkey creation guide", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": "Link to Antara pubkey creation guide", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "create-a-pubkey" + }, + { + "text": "Retrieve DOC Funds Using the Faucet Module", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "To obtain funds on the DOC Smart Chain we utilize the Faucet Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "This returns a raw transaction that you must now broaadcast using ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "Wait a few moments, and then use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": " method to verify that your wallet now contains DOC funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "retrieve-doc-funds-using-the-faucet-module" + }, + { + "text": "Complete Each API Method of the Heir Module", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-each-api-method-of-the-heir-module" + }, + { + "text": "With funds in your wallet, you are prepared to experiment with the API commands available in the Heir Module Flow section. We recommend experimenting with each command until you have executed each at least once.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-each-api-method-of-the-heir-module" + }, + { + "text": "Link to Heir Module Flow", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-each-api-method-of-the-heir-module" + }, + { + "text": "Link to Heir Module Flow", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "complete-each-api-method-of-the-heir-module" + }, + { + "text": "Transactions as a Data Source", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "Transactions are a data source for Antara-based software.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "Transactions can store data in multiple forms. In the simplest form, transaction data records the movement of coins from one address to another. However, blockchain transactions are capable of storing additional data beyond simple coin movement.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "When we desire to place additional data into a transaction, we place this data into an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": ", or \"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "opreturn", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "\" for short.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "Observe the following transaction data structure for the existing Heir module:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "transactions-as-a-data-source" + }, + { + "text": "Command", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "command" + }, + { + "text": "Response (annotated)", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "opreturn", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " is the last output in a transaction, and this output is never spendable under any circumstances. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "opreturn", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " is the location where all Antara Module data is stored. We will demonstrate how this is accomplished further on.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "The opreturn vout contains two key-value pairs that are related to each other, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "asm", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": ". The first, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "asm", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": ", is simply a less encoded version of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "In the above example data structure, note how the value for the key, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "asm", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": ", begins with ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "OP_RETURN ... ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": ", and is followed by additional hex-encoded data. The additional hex-encoded data is arbitrary, and can be used for any purposes a developer sees fit.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "Taking the value in the fully encoded key-value pair, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": ", here is an approximate breakdown of the data.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "| Hex Value | Translation |\n| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 6a | OP_RETURN |\n| 4c85 | Encoded length of the following data. This value is not a string, the value is encoded in the Smart Bitcoin variable length format, and the value is not directly readable. |\n| ea | Stands for \"EVAL_HEIR\". The eval code here tells the daemon that this is an Antara Module, and that the specific module is HEIR |\n| 46 | Stands for \"F\", which is a letter marker to indicate that this Heir transaction is a \"Funding\" transaction |\n| 210... | The remaining portion of the hex encoded data is not related to the core software, but rather to the arbitrary data designed by the developer. Maximum data length is 10000 bytes |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "In all modules, some of the hex-encoded data can be decoded using the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "decodeccopret", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " command on the data contained in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " key-value pair. In our example, the decoded data is as follows.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "decodeccopret", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "When an Antara Module instance begins its life cycle an initial transaction is created. In our example, the transaction we see above is an initial transaction of a full, non-simplified Heir module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "Note that the transaction takes value from normal inputs and sends it to CC outputs, as indicated in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "type", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": " key-value pair.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "response-annotated" + }, + { + "text": "Value Taken From Normal vins", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "value-taken-from-normal-vins" + }, + { + "text": "Value Sent to CC vouts", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "value-sent-to-cc-vouts" + }, + { + "text": "Key Takeaways", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "The important aspect to note here is that an initial transaction of a module instance typically takes value from normal inputs and sends it to CC outputs.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "As time progresses, more transactions on the Smart Chain are performed under this module instance. Each of the module instance's transactions spends from the previous transaction outputs associated with the instance and creates new unspent transactions. This process effectively creates a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "linked-list data structure.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "linked-list data structure.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "With each transaction, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "opreturn", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": " output is never spent, and remains in the blockchain as a source of Antara Module data (read only).", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-3", + "closestElementReference": "key-takeaways" + } + ], + "antara/tutorials/advanced-series-4": [ + { + "text": "Advanced Series — Final Conceptual Discussion", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "advanced-series-final-conceptual-discussion" + }, + { + "text": "Up to this point in the tutorial series we have discussed the general concepts of the Antara Framework and we have discussed initial preparations to build a simplified prototype of the Heir Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "advanced-series-final-conceptual-discussion" + }, + { + "text": "This section of the tutorial series reviews many of the conceptual aspects of the Antara Framework while also diving more thoroughly into technical details.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "advanced-series-final-conceptual-discussion" + }, + { + "text": "This is the final conceptual discussion necessary before we begin writing code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "advanced-series-final-conceptual-discussion" + }, + { + "text": "Understanding CryptoConditions", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "understanding-crypto-conditions" + }, + { + "text": "According to the industry-wide CryptoConditions standard, a CryptoCondition is a logical expression evaluated on electronic signatures and hashes of transaction data.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "understanding-crypto-conditions" + }, + { + "text": "CryptoConditions are stored in the scripts of transactions and are evaluated by a supporting CryptoCondition C library.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "understanding-crypto-conditions" + }, + { + "text": "In a Komodo Smart Chain, the default CC library is included during the installation procedure.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "understanding-crypto-conditions" + }, + { + "text": "Antara Extensions to CryptoConditions", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-extensions-to-crypto-conditions" + }, + { + "text": "In addition to the industry-standard CryptoCondition (CC) library, Komodo's implementation of CC integrates the ability to add arbitrary code into a Smart Chain's consensus mechanism. This allows developers to create essentially an unlimited number of application-specific transaction-validation rules.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-extensions-to-crypto-conditions" + }, + { + "text": "For example, in the Heir Module, if the heir attempts to claim funds, the validation code checks whether the owner of the fund has shown recent activity, according to a specified amount of time. The owner can show activity by either adding to or spending from the fund. If the owner has not shown signs of activity, the validation code allows the heir to claim the funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-extensions-to-crypto-conditions" + }, + { + "text": "Through CryptoConditions and Antara's extensions, the consensus mechanism can rule over the outcome of the cryptocondition logic and arbitrary validation code across the Smart Chain's decentralized network of nodes.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-extensions-to-crypto-conditions" + }, + { + "text": "Makeup of a CryptoCondition", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "A CryptoCondition consists of two parts:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "Part I: A condition that must be met", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "- This is stored in the transaction\noutput's ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "scriptPubKey", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "Part II: A fulfillment", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "- This is stored in the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "scriptSig", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": " field of the\ninput of the transaction that spends the above output", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "makeup-of-a-crypto-condition" + }, + { + "text": "Part I: Logical Condition", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "condition", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": " contains data that checks the CryptoCondition in \"fingerprinted\" form.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "The term ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "\"fingerprinted\"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": " is a common term in the technology industry. To \"fingerprint\" data means to convert an arbitrary set of data to a fixed-length byte array. In this manner, a fingerprint uniquely identifies the source data. (A fingerprint is similar in nature to a hash.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "\"fingerprinted\"", + "tagName": "a", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "To fingerprint data in the CryptoConditions environment, the CC library acquires the target data, combines it with other data that the developer does not need to manage, and then creates the fingerprint.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "Fingerprints are useful in Antara Module development. For example, a logical condition can be a requirement that only a specific fingerprinted ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": " be allowed to spend a transaction output.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-i-logical-condition" + }, + { + "text": "Part II: Logical Fulfillment", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "fulfillment", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": " contains instructions and data about how the consensus mechanism should evaluate the CryptoCondition. For example, the fulfillment could include an instruction to check a spending-transaction's electronic signature as well as the the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": " associated with this signature.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "To spend a CC output of a transaction, a node on the network sends a spending transaction that contains a CC input that fulfills the CC output's condition. The consensus mechanism of the Smart Chain checks that the fulfillment is correct. For this it uses the C CryptoCondition library to evaluate the fulfillment of the spending transaction. The result of this evaluation is checked against the condition stored in the previous transaction output.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "For our example above of an electronic signature, the consensus mechanism runs the logical conditions and fulfillments of the CryptoCondition to verify the electronic signature with the provided pubkey. Then the validation logic calculates the fingerprint of the pubkey and checks it against the condition.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "In adding CryptoConditions to the Antara framework, Komodo extended the original CC protocol by adding an additional aspect beyond the inputs and outputs. This additional part is called the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": " CryptoCondition, or eval code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "Each Antara Module has its own unique eval code. The eval code is a number between 0 and 255, and it identifies the specific Antara Module that is associated with a CC transaction. When the consensus validation logic encounters the Antara Module's eval code in a transaction input, the validation logic calls the module's validation function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "The process of validation of an Antara Module's transaction is depicted on the diagram below:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "part-ii-logical-fulfillment" + }, + { + "text": "The Simplest form of a CryptoCondition", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "The simplest CryptoCondition evaluates an electronic signature of a spending-transaction's ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "scriptsig", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": ". Assuming the evaluation is successful, the spending-transaction is then able to spend funds from the output of another transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "At first glance, you may be confused about why a CryptoCondition is useful in this event, as a normal blockchain protocol can already accomplish this task.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "The answer is that there is an important difference in the CryptoCondition implementation. When a CryptoCondition transaction output is spent, the Antara Module's code can enforce additional validation logic. This is accomplished via the eval code that is stored as a part of the CryptoCondition's inputs and outputs. We will describe this further in the Heir Module development section.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "The ability to enforce additional logic is the key difference that illuminates the power of Antara. For example, additional arbitrary validation code can include logic that allows a user to spend the output only at the appropriate time. The transaction output can be spent only via a spending transaction that has the matching fulfillment, and both the CryptoCondition and the Antara Module validation code evaluate to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "Even the basic CryptoCondition features offer more complex logical expressions than a normal Bitcoin Script. For example, with CC a spending transaction could be required to have signatures from at least ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "M", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": " of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": " acceptable ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "pubkeys", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "As logical conditions and subconditions can be added to a CryptoCondition as desired, the developer can utilize both the CryptoConditions features and customized module's validation code to build complex logic that governs the movement of Smart Chain assets. In this sense, Antara is an advanced evolution of the basic Bitcoin Script security features, such as pubkey or pubkey hash scripts. We will examine validation code in greater detail later in this tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "In this section, we became acquainted with the concept of logical conditions that are associated with transaction outputs, and logical fulfillments associated with spending-transactions. These two elements make up the rudimentary aspect of a CryptoCondition.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "There are yet other elements of an Antara-based CryptoCondition. One element is called the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": " code, and it is stored in the CryptoCondition's inputs and outputs. We will touch on this topic soon.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-simplest-form-of-a-crypto-condition" + }, + { + "text": "Antara Module as Data and Business Logic Layer of Business Application", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "An Antara Module can be described as a combination of a data layer and a business-logic layer in an application. The data layer is the collection of transactions related to the Antara Module, and the business-logic layer is the module's arbitrary code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "These two layers tie in with other layers in an Antara-based software application. For example, the software external to the blockchain could include a presentation layer, consisting of a Graphical User Interface (GUI) and other visual elements. External applications interact with an Antara Module via its RPC calls.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "Also, there can often be an additional oracle layer, wherein oracle software connects nodes to external data sources across the Internet. This can be the case in Antara-based software applications that make use of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "Oracles", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": " Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "Oracles", + "tagName": "a", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-as-data-and-business-logic-layer-of-business-application" + }, + { + "text": "A Global CC Address in the Antara Framework", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "Recall that each Antara Module has an associated global CC address. The private key to this global CC address is publicly available. The address can be used for such tasks as sharing funds between users of this module, and anyone can attempt to spend funds from this address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "The following is an example of a global CC address created and assigned for the Heir module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "| Function | Description |\n| -------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| HeirCCaddr | the global CC address itself |\n| HeirCChexstr | the pubkey |\n| HeirCCpriv | the privkey for the global CC address |\n| HeirNormaladdr | The normal address for the same pubkey and privkey. Spending from this address does not validation by the Antara Module |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "In the Antara codebase, the global CC address is sometimes called the \"unspendable\" address. This is likely a reference to the fact that for any user to spend funds from this address, the spending transaction must pass the module's validation code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "For example, the global CC address could store funds shared between several users. As a global CC address's privkey is publicly available, anyone might try to spend these funds. This is where the Antara validation code will exercise control over whom is allowed to spend funds, and by which rules. The RPC aspect of the Antara Module must prevent the creation of inappropriate transactions as well.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "A transaction can also send a nominal fee to the global CC address with the intention of turning this transaction's output into a search key (called a marker). To ensure these markers remain publicly visible forever, the module's validation code can disable spending for these markers. With this combination, the developer can use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "SetCCunspents", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": " SDK function to enumerate all transactions in the global CC address, and thus discover the module's transaction history.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "a-global-cc-address-in-the-antara-framework" + }, + { + "text": "Antara Development Checklist", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Development requirements for each Antara Module:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Allocate a new ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "EVAL", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": " code for your module", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Assign a global address for the module", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Define the module's transactions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "This includes the structure of their inputs, outputs, and opreturn format", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "This includes the structure of their inputs, outputs, and opreturn format", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Implement the common RPC functions that nearly all modules feature", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "These are typically functions for retrieving a list of all of the module's initial transactions, and for retrieving user addresses and the global CC address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "These are typically functions for retrieving a list of all of the module's initial transactions, and for retrieving user addresses and the global CC address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Implement the module's specific RPC functions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "These are used to create the module-related transactions and to return relevant information about the module's data and state", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "These are used to create the module-related transactions and to return relevant information about the module's data and state", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Implement the module's validation code", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-development-checklist" + }, + { + "text": "Antara Module Architecture", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "From an architectural standpoint, an Antara Module is simply a C/C++ source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "There are two parts to the module's source file: the implementation of RPC's and the validation code. You also need to inform the basic komodod source code of your new Antara Module through the following steps.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "Allocate a new eval code for your Antara Module in ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "src/cc/eval.h", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "add your module's global addresses and the validation code entry function into the registry of Antara Modules in ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "src/cc/CCcustom.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-architecture" + }, + { + "text": "RPC Implementations", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "The first part of the Antara's module source file consists of the implementation of all Remote Procedure Calls (RPC's) for this module. These typically either perform transactions or query information about state and data.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "The developer must also implement high-level functions for any desired RPC commands that are called by the RPC engine and are responsible for converting the RPC data to native C++ data types.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "These functions should be added into an existing source in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "/src/rpc", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": " directory. Alternatively, the developer might create his own RPC source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "A reference to the RPC-command functions should be added to the global RPC command table in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "/src/rpc/server.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "With this properly completed, the Smart Chain daemon's compiler will automatically make each RPC available at the command line through the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": " software and via the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": " utility.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "Essentially all modules have at least these two RPC's.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "XXXXlist", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "This lists all initial transactions relevant to the module", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "This lists all initial transactions relevant to the module", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "XXXXinfo", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "This RPC typically also requires an additional input -- a transaction ID for which information is desired", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "When called, the method then returns information about this transaction ID", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "This RPC typically also requires an additional input -- a transaction ID for which information is desired", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "When called, the method then returns information about this transaction ID", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "Include other RPC implementations as desired.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "rpc-implementations" + }, + { + "text": "Antara Module Validation Code", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "The main purpose of Antara Module validation code is two-fold. First, it ensures that the structure of the sequence of Antara Module related transactions and their data is accurate. Second, the validation code prevents inappropriate Antara-related transactions from entering the chain. In other words, module validation code should protect against malicious transactions, and this is the code's most important task.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "Antara Module Validation code is triggered anytime a node attempts to add a CC spending-transaction to the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "A module's validation code is activated only when a transaction has at least one CC input that bears the module's ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": " code inside the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "scriptSig", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": " in the transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "A module's initial transaction may not have a CC input. When this happens, the validation code is not triggered. Therefore, the transaction may be handled by the normal blockchain protocol.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "As an aside, when the developer needs to write code that validates a spending transaction that spends a utxo that has no CC inputs, the code must first validate the utxo as well. If the result of the validation of the utxo is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": ", then the code can also reject the spending transaction. We will delve into this topic in thorough detail further in the tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-validation-code" + }, + { + "text": "The EVAL Code", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "A unique 8-bit ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": " code is attached to each Antara Module. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": " code is used by the core Smart Chain daemon's transaction-validation code to route any relevant transactions to the appropriate module's validation code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": " code itself is actually a simple CryptoCondition. The CryptoCondition tests for the byte value and, if the value is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": ", routes the result according to the core Smart Chain daemon's code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "the-eval-code" + }, + { + "text": "Antara Module Transaction Structure", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "A CryptoCondition (CC) input is called a \"vin\" and a CryptoCondition output is called a \"vout\".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "A CC transaction has one or more vins and one or more vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "When creating a CC transaction, the transaction's vins can consume the vouts of previous transactions that were either related to CC, or not related.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "When they are not related to CC, the vin of the current transaction does not need to include a CC fulfillment.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "However, if the current transaction's vins are consuming vouts from a CC-related transaction, then the current transaction's vins must contain logical fulfillments that meet the requirements of the previous transaction's CC vouts. Also, the current transaction's CC vins contain the transaction id (txid) of the previous transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "A CC transaction typically also has an opreturn vout that contains module data.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-transaction-structure" + }, + { + "text": "Antara Module SDK", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "Komodo is building an SDK for Antara Module development. The SDK is still in the early stages. Some of the SDK functions are already available, and can be found in the following source files:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "CCtx.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "CCutils.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "cc.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "eval.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "We will return to the SDK functions when we discuss the Heir module development process.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-4", + "closestElementReference": "antara-module-sdk" + } + ], + "antara/tutorials/advanced-series-5": [ + { + "text": "Advanced Series — Developing the Heir Module Prototype", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "advanced-series-developing-the-heir-module-prototype" + }, + { + "text": "Heir Module Development", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-development" + }, + { + "text": "Having finished an overview of the Antara development layout, we are now prepared to create a simplified prototype of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-development" + }, + { + "text": "Heir Module", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-development" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-development" + }, + { + "text": "Heir Module", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-development" + }, + { + "text": "Links to Heir Source Code and Building Instructions", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "A complete working example of this simplified Heir Antara module tutorial can be found at the following link. We invite the reader to download and review the final code while progressing through the tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "Link to Simplified Heir Module", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "Link to Simplified Heir Module", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "The source files are found in the following directories.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "src/cc/heir.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "src/cc/CCheir.h", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "src/wallet/rpcwallet.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "src/rpc/server.cpp", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "src/rpc/server.h", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "links-to-heir-source-code-and-building-instructions" + }, + { + "text": "Downloading and Installing From Source", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "downloading-and-installing-from-source" + }, + { + "text": "At this time, the reader will need to have the Komodo Smart Chain source code available. The reader begins with this default source code and adds to it to create a new Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "downloading-and-installing-from-source" + }, + { + "text": "Instructions to download and build Komodo software is found here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "downloading-and-installing-from-source" + }, + { + "text": "Link to Instructions for Building from Source", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "downloading-and-installing-from-source" + }, + { + "text": "Link to Instructions for Building from Source", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "downloading-and-installing-from-source" + }, + { + "text": "Begin Development", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Our tasks are the following:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Add a new ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "EVAL", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": " code to represent this module", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Create a global CC address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Define the Heir Module transactions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "vouts, or logical conditions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "vins, or logical fulfillments", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "vouts, or logical conditions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "vins, or logical fulfillments", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Implement the RPC interface", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Create the validation code", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "begin-development" + }, + { + "text": "Create the EVAL Code", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "In a previous section of this advanced series, we discussed the nature of creating a new EVAL code for an Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Link to EVAL code instructions here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Link to EVAL code instructions here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Review the above linked section and attempt to create an EVAL code on your own for this simplified Heir Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "When you are finished with your attempt, compare your results with the downloadable files for this tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Link to EVAL code source file in simplified Heir Module downloadables.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Link to EVAL code source file in simplified Heir Module downloadables.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "create-the-eval-code" + }, + { + "text": "Global CC Address", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "We also recently discussed the method of adding a Global CryptoCondition (CC) Address as a part of initiating a new Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Link to Global CC Address instructions here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Link to Global CC Address instructions here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Review the above linked section and attempt to create a Global CC Address on your own.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "When you are finished with your attempt, compare your results with the downloadable files for this tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Link to Global CC Address file in simplified Heir Module downloadables.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Link to Global CC Address file in simplified Heir Module downloadables.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "global-cc-address" + }, + { + "text": "Heir Module Transactions", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-transactions" + }, + { + "text": "We require three types of module transactions", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-transactions" + }, + { + "text": "an initial transaction with which a user creates the fund for inheritance", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-transactions" + }, + { + "text": "a transaction for additional funding", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-transactions" + }, + { + "text": "a transaction for spending funds by the owner or heir", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-transactions" + }, + { + "text": "The Initial Transaction: Creating a Fund", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "| Input/Output | Description |\n| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vins.*", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Normal input", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "*", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " notation implies that this can apply to any number of inputs ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - These vins are typical of core blockchain software and not related to CC |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " CC address that holds the funds that belong to the owner and, once available, to the heir", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The transaction fee to account for the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " amount above", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - The amount in ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " is used as a marker. We will discuss markers and their uses cases further on in the tutorial |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Normal change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - Recall that ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " is the leftover amount from the original utxo that the user does not intend to send to the destination address, and which the user desires to keep ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - Any amount of leftover funds not included in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " utxo is forfeited to the miner of the block; this is how miners receive their mining fee |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.n-1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "OP_RETURN EVAL_HEIR 'F' ownerpk heirpk inactivitytime heirname", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - This is the is the opreturn vout, and it contains any data relevant to the module ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - The 'F' is a flag that indicates that this transaction is a \"Funding\" CC transaction ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "ownerpk", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "heirpk", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " respectively represent the pubkeys of the owner and heir ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - Concerning ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": ", the owner should either make a donation to or spend from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " address within the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "inactivitytime", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " amount of time to prevent opening the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " address to the heir for spending. ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " - ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "heirname", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " is the name of this instance of the Heir Module |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Through a funding transaction, the owner of the initial funds creates a \"plan,\" which we can also call a \"module data instance,\" and deposits funds for future spending.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The initial funds are taken from normal utxos. The initial transaction spends these normal utxos and uses them to create an CC-related utxo. Thus, the initial transaction is the beginning of the relationship between the funds and the Heir Antara Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The main funds for the plan are allocated to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " of our CC transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "By design, and setting aside issues of timing, we desire that either the owner or the inheritor of the funds should be able to spend this utxo. We assume that the owner has one address, and the inheritor has another. To achieve this, we use an advanced CryptoConditions feature that states that either of two addresses can spend the funds. This is called a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " CryptoCondition, and it is placed as a logical condition into ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "A fee is allocated to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": ". This is used as a marker. The marker allows a developer to use a special SDK function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "SetCCunspents()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": ", to create a list of all initial transactions for the module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "As usual, out of the remaining amount of our initial utxo, we need to send all that we desire to keep to our ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Also, we need to leave an amount as an incentive for the miner. Any remainder beyond the sum total of our new ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " values will automatically be allocated in this manner. We typically leave ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " satoshis of our Smart Chain coin, by convention.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Note the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " letter in the opreturn structure. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " stands for \"fund.\" By convention, the first byte of any opreturn is the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": " code. The second byte is the transaction functional id, we use it to understand the transaction data structure in the opreturn.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "We also stored other relevant data in the opreturn:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The owner and inheritor pubkeys", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "Inactivity time", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "this is the amount of seconds during which the owner must exhibit activity to maintain sole control over the funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "If the owner does not spend funds during this time period, the inheritor will gain the ability to spend these funds as well", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "this is the amount of seconds during which the owner must exhibit activity to maintain sole control over the funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "If the owner does not spend funds during this time period, the inheritor will gain the ability to spend these funds as well", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The descriptive name of this funding plan", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-initial-transaction-creating-a-fund" + }, + { + "text": "The Add Coins Transaction", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "| Input/Output | Description |\n| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "vins.*", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " | normal inputs |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " | the funding CC ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " address for the owner and heir. This address consists of two parts: the owner and heir pubkeys. Either owner or heir can spend this vout |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "vout.1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " | normal change |\n| ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "vout.n-1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " | OP_RETURN 'A' fundingtxid HasHeirSpendingBegun |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "This transaction serves the purpose of adding more funds to the owner's address. The transaction uses normal coin inputs (non-CC) and sends them to the CC ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "We include the transaction id (txid) of the initial transaction in the opreturn to bind the add transaction to the plan.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "Note the functional id, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "A", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": ". This flag indicates that this transaction is an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "add", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " type of funding transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "Note the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "HasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": " flag as well. This is discussed later in the series, in the module source-code description.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-add-coins-transaction" + }, + { + "text": "The Claim Coins Transaction", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "| input/output | description |\n| ------------ | ------------------------------------------------------------- |\n| vin.0 | normal input transaction fee |\n| vin.1+ | input from CC ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " address |\n| vout.0 | normal output, sent to the owner or the heir address |\n| vout.1 | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " to CC ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " address |\n| vout.2 | ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " to user's address from transaction fee input, if any |\n| vout.n-1 | OP_RETURN EVAL_HEIR 'C' fundingtxid HasHeirSpendingBegun |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "This transaction allows either the owner or the heir to spend funds from this plan instance.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "To pay the transaction fee to the miners, the transaction has a normal input that draws from the wallet of the transaction creator.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "The transaction also has a CC input for spending the claimed value from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " fund address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "As for outputs, the claimed value is sent to the claimer's normal address, allowing the claimer to spend funds as usual. Unspent or leftover \"change\" from the transaction is returned to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "We also indicate the normal ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "change", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "The functional id, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "C", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": ", in the opreturn indicates that this is a \"claim\" type transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "We also include all the same opreturn data as in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "A", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " transaction, include the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " and the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "HasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": " flag.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-claim-coins-transaction" + }, + { + "text": "Heir Module RPC Implementations", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-rpc-implementations" + }, + { + "text": "heirfund", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirfund" + }, + { + "text": "For a user to call the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirfund" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirfund" + }, + { + "text": " RPC, the user will need to supply the name of the RPC and its parameters as arguments.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirfund" + }, + { + "text": "We model the syntax as follows:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirfund" + }, + { + "text": "Descriptions of the heirfund Syntax", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": "| Argument | Type | Description |\n| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| amount | (number) | The initial funding amount, in coins |\n| name | (string) | The name of the heir funding plan (arbitrary) |\n| heirpubkey | (string) | The heir's public key (in hexademical) |\n| inactivitytime | (number) | The time (in seconds) that must pass without the owner executing an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": "heiradd", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": " method, after which the address unlocks to the heir |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "descriptions-of-the-heirfund-syntax" + }, + { + "text": "Adding the Command to the Source File", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "To add a new command to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": " we open the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "src/server.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": " source file add a new element to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "vRPCCommands", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": " array.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "| Object | Description |\n| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| heir | a common name for all heir module RPC calls |\n| heirfund | the name of the new command |\n| &heirfund | the address of the RPC interface function |\n| true | indicates that the command description will be shown in the help command output; placing ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": " here would hide this RPC from the help output |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-the-command-to-the-source-file" + }, + { + "text": "Add the RPC Function Declaration", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-function-declaration" + }, + { + "text": "We add the RPC function declaration in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-function-declaration" + }, + { + "text": "rpc/server.h", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-function-declaration" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-function-declaration" + }, + { + "text": "The declaration in this file is essentially the same across all RPC functions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-function-declaration" + }, + { + "text": "The Two Levels of an RPC Implementation", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "There are two levels to an RPC implementation.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "The first level is a short RPC function that has the same name as the RPC command itself (such as ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "The body of this level is added to a source file in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "rpc/", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " subdirectory in the source code (for this example, we added the RPC functions for Heir Module in the wallet/rpcwallet.cpp).", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Creating a new RPC source file for each Antara Module's RPC functions is considered a best practice.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "This function checks the RPC parameters and the needed environment, and then forwards the RPC to the second level.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "To begin the RPC command, we declare the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " function and clear the global error object.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Recall that a Smart Chain must have the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "ac_ccenable", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " customization parameters properly initiated for any Antara Module to function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "ac_cc", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "ac_ccenable", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Therefore, we check that the wallet and Heir Module features are available in the Smart Chain. We also check the RPC parameter's required number:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Ensure that the wallet object is initialized:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Ensure that the chain parameters needed for Antara Modules are correctly set. For example, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "spentindex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " should both be enabled. Also, ensure that the Heir Module is enabled on this chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "spentindex", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Lock the user's wallet:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "UniValue", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " object is a special type used to pass data in RPC calls. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "UniValue", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " object is native to all blockchains based on the Bitcoin protocol. For parameters, UniValue requires an array of UniValue objects.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "We must convert these UniValue objects into normal C/C++ language types, and then pass them to the second level of our module implementation.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Convert the parameters from the UniValue type to their basic C++ types and add checks to ensure that the converted parameter values are correct.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "This content is abbreviated. For links to the full source code and example\nfiles, click here.\n/antara/tutorials/heir-module-tutorial#links-to-heir-source-code-and-building-instructions", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Note the method for parsing the hex representation of the pubkey parameter and converting it to a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "CPubKey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " object.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Finally, call the Heir Module code, pass our values (now in C++ type format), and set these as the value of the final ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "result", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": " object. Bear in mind that the returned value from the Heir Module code, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "HeirFund", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": ", returns a hexadecimal value.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "See the linked source code (line number is approximate.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "See the linked source code (line number is approximate.)", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "the-two-levels-of-an-rpc-implementation" + }, + { + "text": "Second Level Implementation", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "second-level-implementation" + }, + { + "text": "The second level of the RPC implementation is the transaction creation code. This resides in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "second-level-implementation" + }, + { + "text": "src/cc/heir.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "second-level-implementation" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "second-level-implementation" + }, + { + "text": "Implementing heirfund transaction creation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "The following content displays the skeleton of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "heirfund", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": " RPC implementation.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "For links to the full source code and example files, click here.\n/antara/tutorials/heir-module-tutorial#links-to-heir-source-code-and-building-instructions", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "Create a mutable version of a transaction object.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "Declare and initialize an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "CCcontract_info", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": " object with Heir Module variables, such as our global CC address, our global private key, etc.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-heirfund-transaction-creation" + }, + { + "text": "Adding Inputs to the Transaction", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "Add inputs to the transaction that are enough to make a deposit of the requested amount to the Heir fund. Also add one fee to serve as a marker, and another for the miners.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "By tradition, we use a constant fee of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": " satoshis.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "We use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": " from the komodod ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": " launch parameter as the destination address for the funds withdrawn from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": " plan address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "We use a function in the CC SDK, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "AddNormalinputs", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": ", to add the normal inputs to the mutable transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "The parameters passed to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "AddNormalinputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": " function are:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "The transaction itself", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "The user's pub", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "The total value for the funding amount", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "he marker and the miner fees", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "The limit on the quantity of utxos the daemon can take from the wallet of the user", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "Naturally, only utxos that are available via the wallet's private keys can be used for these inputs", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "Naturally, only utxos that are available via the wallet's private keys can be used for these inputs", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-inputs-to-the-transaction" + }, + { + "text": "Adding Outputs to the Transaction", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "According to our specification, we need two outputs: one for the funding deposit and one for the marker.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Here, we use two CC SDK functions that are designed to create CC vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "In our first statement we use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "MakeCC1of2vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function to create a CC vout with a threshold of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " addresses that can spend from the plan funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "We supply as arguments the two potential addresses, represented here as ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "myPubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "heirPubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": ". Therefore, there are two pubkeys that are able to spend funds in the address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "The statement of code then adds this vout to the transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Note the eval code, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "EVAL_HEIR", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": ". This triggers the Heir validation code whenever an Heir Module transaction occurs.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "The second statement creates a marker vout with a simple CryptoCondition.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "We always need some kind of marker for any instance of an Antara Module plan for at least the initial transaction. Otherwise, we might lose the instance's data in the blockchain. We call this a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "marker pattern", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " in Antara development, and we will explore this concept in more detail later in the tutorial.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "For now, we need to obtain the global CC address so that we can both mark the transaction, and to find all Heir funding plans. To obtain the global address we use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "GetUnspendable()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "We use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "MakeCC1vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function to create a vout with a simple CryptoCondition that sends a transaction fee to the Heir Module global CC address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "The statement then adds this vout to the transaction. This vout will be used for retrieving the list of all instances of the Heir Module via the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "heirlist", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Finish the creation of the transaction by calling the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "FinalizeCCTx", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function along with its parameters from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "cp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " object, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "mtx", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " object itself, the owner's pubkey, and the transaction fee amount.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Note the cast to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "uint8_t", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " for the constants ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "EVAL_HEIR", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function id. This is important, as the cast supposes a one-byte size for the serialization of these values. If this size was not inferred, then the type would be an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "int", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Also, an opreturn object with the data from this module instance is passed. To create the opreturn object, serialize the needed ids and variables to a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "CScript", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " object.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "In case the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "AddNormalinputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function cannot find sufficient owner coins for the requested amount (including the transaction fee), we set the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "CCerror", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " error object.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Note that we do not need to add the normal change output here because the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "FinalizeCCTx", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function adds the change output for us.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "FinalizeCCTx", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " also builds the transaction input ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "scriptSigs", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " (both normal and CC aspects), adds tx signatures to them, and returns a signed transaction in hexadecimal encoding.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Also note the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "E_MARSHAL()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function. This serializes variables of various supported types to a byte array. The byte array is then serialized to a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "CScript", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " object. The object is stored in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " transaction field in the last opreturn vout with transaction data.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "There is also the mirror ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "E_UNMARSHAL()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " function. This is used for unpacking opreturn data from a CScript object to C++ variables, and for further processing.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "The returned transaction is ready to be sent to the Smart Chain network using the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "adding-outputs-to-the-transaction" + }, + { + "text": "Implementing the heirclaim RPC", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-the-heirclaim-rpc" + }, + { + "text": "As before, this implementation has two levels. The first level checks the required environment and converts the parameters. The second level creates the final transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementing-the-heirclaim-rpc" + }, + { + "text": "heirclaim syntax", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heirclaim-syntax" + }, + { + "text": "Add the RPC command to komodo-cli", + "tagName": "h5", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Add a new command to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " by adding a new element into the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "vRPCCommands", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " array in the source file ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "src/server.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Using the previous section of the tutorial as an example, add an ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " RPC implementation in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "src/rpc/wallet.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Add the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "heirclaim", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " declaration in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "src/rpc/server.h", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " header file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Check that the wallet is available.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "In case the user asks for help via the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "--help", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " parameter, or in case the parameters are not correctly submitted, print a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "help", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " message to the console.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Also check that Antara requirements are satisfied:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Lock the wallet:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Convert the parameters from ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "UniValue", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "c++", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " type:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Call the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "HeirClaim", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": " transaction creation function and return the created transaction in hexadecimal.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "add-the-rpc-command-to-komodo-cli" + }, + { + "text": "Transaction creation code for heirclaim RPC", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Implement the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "HeirClaim", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " transaction creation code in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "src/cc/heir.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Start with creating a mutable transaction object:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Initialize the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "cp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " object:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Find the most recent owner transaction to calculate the owner's inactivity time. The helper function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "FindLatestOwnerTx()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": ", returns the latest transaction id, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "owner", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "heir", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " public keys, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "inactivity time setting", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " value, and the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " flag value.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Check whether the inactivity time of the owner has surpassed the amount designated in the plan. The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "CCduration", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " CC SDK function returns the time (in seconds) since the confirmation of the block that bears the provided transaction to the chain-tip block.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "If ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " is already ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": ", there is no need to also check the owner's inactivity time.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Create the claim transaction inputs and outputs.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Add normal inputs for the transaction fee:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Get the address of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " threshold CryptoCondition output (where the funds were deposited). Add CC inputs for the requested amount.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Add CC inputs for this address with the use of a custom function:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Add a normal output to receive the claimed funds, and a CC change output for the remaining amount.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Add normal change (if any), add OP_RETURN data, and sign the transaction:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "In the opreturn we add a pair of standard ids: the CC ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " code, the functional id, and the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " to serve as the funding plan identifier.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " value is a special flag. When this value is changed to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": ", it indicates that the heir has spent funds in the fund at least once. Therefore, it is no longer necessary to check the inactivity time of the owner.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Once ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": ", this flag should also be set to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": " in the following transaction OP_RETURN values.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "transaction-creation-code-for-heirclaim-rpc" + }, + { + "text": "Implementations for heiradd, heirlist and heirinfo", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "heiradd", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": " allows a user to add more funding to a plan.", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "heirlist", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": " is a standard RPC for all CC modules. This RPC outputs a list of all initial transaction IDs, which serve as the identifiers for each plan.", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "heirinfo", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": " provides data about a funding plan.", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "The implementation for these RPCs can be found in the github repository with the source code of this contract.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "RPC implementation can be found here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "RPC implementation can be found here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "Transaction creation and retrieval code can be found here.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "Transaction creation and retrieval code can be found here.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "implementations-for-heiradd-heirlist-and-heirinfo" + }, + { + "text": "Heir Module Helper Functions", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-helper-functions" + }, + { + "text": "Simplified Add1of2AddressInputs() Function Implementation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "By default, the CC SDK function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "SetCCunspents", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": ", fills the provider vector with a list of unspent cc outputs of the provided ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "coinaddr", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " Bitcoin address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "For our Heir Module, we pass the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " address where the plan's funds are stored.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Iterate through the returned uxtos and add those that are appropriate to the transaction's vin array:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Load the current uxto's transaction and check whether it has an opreturn in the back of the array of outputs.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Check that the uxto matches this plan.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "To add the utxo to the transaction's vins, set the utxo's vout number and transaction id in the transactions vins. Pass an empty call to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "CScript()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " function in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "scriptSig", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " parameter. This will be filled by the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "FinalizeCCtx", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Stop once sufficient CC inputs are found.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "In the event that the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": " parameter is ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": ", add all available inputs to calculate all available funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Return the total amount of inputs added to the transaction's vin array:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-add1of2-address-inputs-function-implementation" + }, + { + "text": "Simplified Implementation of the FindLatestOwnerTx() Function", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "To calculate the owner-inactivity time and to enable the heir to claim the funds, we implement the function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "FindLatestOwnerTx()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "This function iterates through the transactions of this plan, (which we can also call this instance of the Heir Module) and finds the owner's latest transaction. We pass into this function the initial funding txid of the plan we desire to inspect.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "The function returns the pubkeys of both the owner and the heir, the owner inactivity time, and a flag that indicates whether the heir has already spent funds from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "All returned values of the function are retrieved from the transactions' opreturns.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Initialize the flag as though the heir has not yet spent any of their plan's funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Initialize the following variables.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Load the initial funding transaction, check whether it has a correct opreturn, and de-serialize it.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Check the transaction rules. Return an empty id if the funding transaction cannot not be loaded or is incorrect.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Initialize the CC contract object for the Heir Module's ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Declare the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "coinaddr", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " array and use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "GetCCaddress1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " function to pass the array the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " address that holds our funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Get the vector with uxtos for the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Iterate through the returned uxto's to find the last funding or spending owner transaction:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Retrieve the transaction from the returned array. Check and unmarshal the transaction's opreturn and check whether this transaction is from the relevant Heir plan.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "As the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "SetCCunspents", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " function does not return uxtos in chronological order, order them by block height to find the latest utxo.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Check whether this transaction indicates owner activity. Use a pair of CC SDK functions, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "TotalPubkeyNormalInputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "TotalPubkeyCCInputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": ", that iterate through the vin array to find if the transaction was signed with the owner's pubkey.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "If this transaction represents owner activity, reset the latest txid to this current txid.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Set the flag for the transaction opreturn.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Return the latest owner txid.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-implementation-of-the-find-latest-owner-tx-function" + }, + { + "text": "Heir Module Validation", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation" + }, + { + "text": "Simplified Validation Function Implementation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "Validation provides the logic control of spent Antara-module value, and validation also provides the data added to the Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "Recall that validation code is invoked for a transaction at the time the CC-related value is spent (as opposed to only being invoked at the time the value is added). We trigger the invocation of this validation function when at least one transaction input is a CC input bearing this module's ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "EVAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": " code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "Validation code typically is not called for the Antara module's initial transaction. Instead, we invoke validatation at the time the initial transaction is spent in a second transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "One way to invoke validation for the first transaction when performing the second transaction is to load the initial transaction and validate it first. If the initial transaction turns out to be invalid, it can remain in the chain and is otherwise ignored. In this case, if a CC marker is used, it can be cleared and the transaction is removed from the initial transaction list RPC output.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "simplified-validation-function-implementation" + }, + { + "text": "Guidelines for Validation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "In our Heir Module prototype, we have three transactions to validate: the initial funding, the adding transaction that adds more funds, and the transaction that claims the funds. The first and second of these transactions do not have any CC vins, and therefore all are validated together with the transaction that claims the funds.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Here are several common aspects of a module that require validation:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "The basic transaction structure", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "The basic data structure in the OP_RETURN", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Validation here ensures data integrity in the chain", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "All OP_RETURNs should contain the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "EVAL", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": " code and functional id in the first two bytes", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Validation here ensures data integrity in the chain", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "All OP_RETURNs should contain the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "EVAL", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": " code and functional id in the first two bytes", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Avoid all foreseeable attack vectors", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Ensure DOS attacks are eliminated, especially in the event of a malformed transaction", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Check the array size before use of any transaction data", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Ensure DOS attacks are eliminated, especially in the event of a malformed transaction", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Check the array size before use of any transaction data", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Check the previous Heir Module transactions which this transaction spends and which have no cc inputs. This is accomplished by retrieving the transaction id from the opreturn and loading and validating the previous transaction", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "guidelines-for-validation" + }, + { + "text": "Heir Module Validation Rules", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "The following are the aspects of validation the Heir Module requires.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "The initial funding transaction", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Validate that the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " address accurately matches ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "pubkeys", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " in the opreturn", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Validate that the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " address accurately matches ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "pubkeys", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " in the opreturn", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "The claiming transaction", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Validate that this transaction spends transactions from the same funding plan. This funding transaction id's values from the opreturn outputs of the previous transactions should match. (the previous transactions are often referred as ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "vintx", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " in code)", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Validate that this transaction spends transactions from the same funding plan. This funding transaction id's values from the opreturn outputs of the previous transactions should match. (the previous transactions are often referred as ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "vintx", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " in code)", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Validate whether the heir is allowed to spend the funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Check whether the flag indicates that the Heir is already spending the funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Check whether enough time has passed since the last time the owner was active on the chain", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Check whether the flag indicates that the Heir is already spending the funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Check whether enough time has passed since the last time the owner was active on the chain", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "When validating, separate the owner's funding transaction from any other contributions to the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Although the Heir Module is initiated based on the owner's initial transaction, nothing prevents other users on the Smart Chain from contributing funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Therefore, when validating, for each utxo contained in the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " address, calculate whether or not the utxo's vins contain the owner's pubkey", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Although the Heir Module is initiated based on the owner's initial transaction, nothing prevents other users on the Smart Chain from contributing funds", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "Therefore, when validating, for each utxo contained in the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " address, calculate whether or not the utxo's vins contain the owner's pubkey", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "During the course of validation, we fully check opreturn format", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "This validation logic is performed in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "HeirValidate()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " function. The function is invoked whenever a CC transaction bearing the appropriate eval code occurs on the chain. When this eval code appears, the consensus mechanism calls the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "HeirValidate()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": " function, executes the indicated validation code, and adds the transaction to the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-module-validation-rules" + }, + { + "text": "HeirValidate() Implementation", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Explanation of code:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Transaction-validation entry function", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "(This is actually a callback)", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "(This is actually a callback)", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Parameters", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "cpHeir", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Pointer to the module's variable structure", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "eval", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Pointer to the CC dispatching object", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Used to return invalid state", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "tx", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - The transaction itself", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "nIn", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Not used in validation code", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "cpHeir", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Pointer to the module's variable structure", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "eval", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Pointer to the CC dispatching object", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Used to return invalid state", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Used to return invalid state", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "tx", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - The transaction itself", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "nIn", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " - Not used in validation code", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Check that the basic transaction structure has the opreturn with the correct basic ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "funcid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "There is no need to check the function ids of the (", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ") funding transaction or\nthe (", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "A", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ") add transaction, as these transactions have no Heir CC vins.\nTherefore, we do not create validation code for them.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Decode the transaction's opreturn with the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "E_UNMARSHAL", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " function. This function places the opreturn serialized data into several variables. One of them, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " variable, is the transaction id (txid) of the initial funding transaction. We will use it further to find the latest owner transaction to check when the owner was last active on the chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Check that the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "fundingtxid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " is a valid txid:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Here we come to a good place to load the initial transaction, check whether it exists, and whether it has a correctly formed opreturn.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Call the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "FindLatestOwnerTx()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " function. This function obtains the opreturn parameters and the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " flag, and checks the initial transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Print a log message to the console that the daemon process is in the validation code:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Prepare for validation rules that are specific for each function id (", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "A", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "C", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "F", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "A", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ", we return an invalid response, as the process should never be able to access these function ids.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Validation for the claiming transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Check whether we are spending the correct funding transactions", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For example, check that the transactions are from the correct module instance, as identified by the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "fundingtxid", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "If incorrect, return ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "false", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For example, check that the transactions are from the correct module instance, as identified by the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "fundingtxid", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "If incorrect, return ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "false", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "If the heir is claiming the funds, check that he is allowed to do so", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For example, check the inactivity time of the owner and whether the heir has already spent funds from the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For example, check the inactivity time of the owner and whether the heir has already spent funds from the ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "1of2", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " address", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Check whether the new flag, ", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "hasHeirSpendingBegun", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ", is set correctly", + "tagName": "li", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Both of the following support functions, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "CheckSpentTxns", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "CheckInactivityTime", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": ", are in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "heir.cpp", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": " source file.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Link to heir.cpp source file", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Link to heir.cpp source file", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "For unsupported function ids, return an invalid state.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "If all rules pass, return a valid state.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "heir-validate-implementation" + }, + { + "text": "Validation Code Errors", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "During the development of validation code, you will likely receive validation errors when any CC module validation function returns an invalid state.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "For example, when sending a raw transaction, the daemon checks the transaction while adding it to the mempool.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "During this process, if the CC validation code returns an invalid state you will see the following error:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "When this happens, check the server output for a more specific error description. The first line of the output contains the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "eval->invalid()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": " message from your validation code.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "p", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + }, + { + "text": "Link to Next Tutorial in Advanced Series", + "tagName": "a", + "path": "antara/tutorials/advanced-series-5", + "closestElementReference": "validation-code-errors" + } + ], + "antara/tutorials/advanced-series-6": [ + { + "text": "Advanced Series — Miscellaneous", + "tagName": "h1", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "advanced-series-miscellaneous" + }, + { + "text": "This last tutorial in the Advanced Series provides miscellaneous information that our development team considered to be useful for prospective developers.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "advanced-series-miscellaneous" + }, + { + "text": "Congratulations on finishing the Advanced Series. Make sure to reach out to the Komodo team to see if there are any bounties that you can fill with your new ability to create Antara Modules. And we welcome you to the Komodo ecosystem as a prepared developer. We look forward to seeing what you create.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "advanced-series-miscellaneous" + }, + { + "text": "Terminology", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "terminology" + }, + { + "text": "| Term | Definition |\n| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| CryptoCondition, or CC | An encoded expression, coupled with a supporting C library, that allows the Smart Chain's consensus mechanism to check several types of logical conditions based on electronic signatures and hashes |\n| Antara module | A collection of customized code that a developer adds into the default daemon to add unique functionality, including customized consensus rules and more |\n| CC input | A transaction input, CC encoded. Typically spends value from a CC output |\n| CC output | A transaction output, CC encoded |\n| funding plan | The txid of an Antara Module's initial transaction, it is the identifier for all of the Antara module's CC transactions, related to this funding plan |\n| normal inputs | Inputs spending value from normal transaction outputs (not CC outputs) |\n| normal outputs | Not CC outputs, but normal transaction outputs (pubkey, pubkey hash, etc.) |\n| OP_RETURN, opreturn | A special output in a transaction that holds user and module data. The output is prepended by an OP_RETURN script opcode and therefore spending from this output is impossible |\n| tx, txn | Short for \"transaction\" |\n| txid | Transaction id; a hash of a transaction |\n| unspendable address | The global cc contract address, for which its public and private key are commonly known. This address is used for conditionally sharing funds between contract users. As the address's private key is not a secret, by default anyone can spend value from this address. However, CC validation code often applies business logic conditions and checks to ensure that only transactions that meet the given criteria are actually able to spend funds in this address |\n| vin | An input, or an array of inputs, in a transaction structure (tx.vin) |\n| vout | An output, or an array of outputs, in a transaction structure (tx.vout) |", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "terminology" + }, + { + "text": "CC contract patterns", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "cc-contract-patterns" + }, + { + "text": "The following are useful patterns during Antara module development.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "cc-contract-patterns" + }, + { + "text": "Baton Pattern", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "The baton pattern allows the developer to organize a single-linked list in a Smart Chain. This list is formed by transactions that spend the baton from previous transactions.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "To traverse a linked list using the baton method, start with the first transaction in any plan instance and iterate through the other transactions to collect properties in their opreturns.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "Example:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "Add a baton to a transaction by sending a small fixed fee to a predefined output:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "We use the baton on the pubkey provided by the user in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": " daemon parameter.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "Iterate through the transactions marked with the baton:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "baton-pattern" + }, + { + "text": "Marker Pattern", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "The marker pattern is used to place a mark on all similar transactions. This is accomplished by sending a small value to a common fixed address. Typically, we use the global CC address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "You can also create either a normal marker or a CC marker for the purpose of finding transactions related to your module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "When using normal markers, there is a small problem that is easily solved. The global CC address allows any user to spend its funds, and therefore anyone can spend your marker transaction. To overcome this, use the CC SDK function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "Settxids()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": ", to retrieve all transactions with markers in the CC contract list function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "Another method is to create an unspendable CC marker. In this method, send a small value to a CC output with a well-known address. To retrieve the list of CC-marker transactions, use the CC SDK function, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "SetCCunspents()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": ". This returns a list of transactions with unspent outputs for that known address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "When using the unspendable CC marker method, in the validation code you should disable spending from this address. This prevents a scenario where spending from the address causes you to lose markers. (For example, if you were to allow for spending from this address using a burn transaction, the burn transactions would take the burned markers into a hidden state, thus removing the markers from the list of initial transactions.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "In all cases, the CC module validation code should disable unauthorized attempts to spend any markers.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "Concerning the method that relies on the CC marker, if the global CC address is used for storing not only the marker value, but also other funds, you need to ensure that marker values are not spent.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "A code example for finding transactions marked with a normal marker:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "Many other Antara modules contain examples for finding marked transactions in any CC module standard list function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "SetCCtxids()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": " function requires that the Smart Chain ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "txindex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": " launch parameter NOT be adjusted beyond the default and automatic settings.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "txindex", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "A code example for finding transactions marked with an unspendable CC marker:", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "CCunspents()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": " function requires the Smart Chain ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "spentindex", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": " launch parameters to be set to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "spentindex", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "marker-pattern" + }, + { + "text": "Txidaddress Pattern", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "You can use the txidaddress pattern to send value to an address from which the value should never again be spent.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "The function ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "CCtxidaddr", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " is available for creating an address that is not associated with any known private key. This function creates a public key with no private key from a transaction id.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "For example, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "Payments", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " Antara Module uses ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "CCtxidaddr", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " to create a non-spendable txidpk from the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "createtxid", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": ". Furthermore, the module also uses the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "GetCCaddress1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " function to create a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "1of2", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " address from both the Payments module global pubkey and the txid-pubkey.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "Payments", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "This allows the module to collect funds on a special CC address that is intended only for a particular type of creation transaction. Funds are sent to this address via the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "MakeCC1of2vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": " function. Only the Payments module global pubkey and txid-pubkey can successfully create transactions that can be sent to this special address.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "txidaddress-pattern" + }, + { + "text": "Create an unspendable public key for a transaction id", + "tagName": "h6", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "create-an-unspendable-public-key-for-a-transaction-id" + }, + { + "text": "Create a cc vout with 1 of 2 pubkeys, one of which is txid pubkey", + "tagName": "h6", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "create-a-cc-vout-with-1-of-2-pubkeys-one-of-which-is-txid-pubkey" + }, + { + "text": "Spend 1 of 2 pubkey outputs with a txid pubkey in a previous transaction", + "tagName": "h6", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "spend-1-of-2-pubkey-outputs-with-a-txid-pubkey-in-a-previous-transaction" + }, + { + "text": "Application Data in a CryptoCondition vout (\"cc opret\")", + "tagName": "h3", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "With the latest changes to the Antara SDK a developer can now add application data to a CryptoCondition output, also called a \"cc opret.\"", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "This allows more flexibility in the creation of Antara Module transactions. As cc-output content is hashed and not directly readable, cc opret creates the possibility to add identification data to a cc output. This allows the developer to distinguish this vout from other vouts.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "The SDK also now opens up the possibility to place any application data in cc vouts, instead of the last vout alone (as was the case previously). This allows a single transaction to have outputs of two or more Antara modules. For example, this can be useful when making swaps of values between modules.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "An example of cc-opret usage can be found in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Payments Module.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " In this module, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "vData", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " optional parameter in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "MakeCC1of2vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " function is used to append the opreturn data directly to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "ccvout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " itself. This contrasts with the old method of adding the data to an actual opreturn that is the last ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " in a transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Payments Module.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "The following content provides an example of using cc opret data for the identification of Antara module cc outputs. (Recall that a cc output's content is hashed, and therefore identifying a cc vout is challenging.)", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Using a modification to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "IsPaymentsvout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " function, we spend a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "ccvout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " in the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Payments", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " module back to its own address, without needing a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "markervout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " or an opreturn.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Note, that if you need to further differentiate the cc outputs in a transaction (for example, from another Antara module vouts) you may also analyze the ccopret content, specifically the eval code stored in it.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "In place of the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "IsPayToCryptoCondition()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " function we can use the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "getCCopret()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " function. This latter function is a lower level of the former call, and will return any ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "vData", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " appended to the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "ccvout", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " along with a ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "/", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " value that would otherwise be returned by the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "IsPayToCryptoCondition()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " function.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "In validation, we now have a totally different transaction type than the types that are normally available. This new type allows us to have different validation paths for different ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "ccvouts", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": ", and it allows for multiple ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "ccvouts", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": " of different types per transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "application-data-in-a-crypto-condition-vout-cc-opret" + }, + { + "text": "Various Tips and Tricks in Antara Module Development", + "tagName": "h2", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "various-tips-and-tricks-in-antara-module-development" + }, + { + "text": "Test Chain Mining Issue", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "test-chain-mining-issue" + }, + { + "text": "On a test chain consisting of two nodes, we do not recommend that you set both nodes to mine. When there are only two nodes, a blockchain struggles more to achieve consensus, and the chain can quickly stop syncing properly. Instead, have only one node mine for the two-node test chain.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "test-chain-mining-issue" + }, + { + "text": "Limits on AddNormalInputs() Function Calls per Transaction", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "Keep the number of ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "AddNormalInputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " function calls to one for each block of code that creates a transaction.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "As an example of why we should not exceed more than one call, we can look at the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "FillSell()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " function. This function calls ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "AddNormalInputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " two times at once. The first time the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "AddNormalInputs()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " function must add a txfee and the second time it adds coins to pay for tokens.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "Let us suppose we have only two utxos in our wallet, one for ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "9,000,000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " satoshis and another for ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "10,000", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " satoshis. In this case, when we execute the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "FillSell()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": " function our large uxto is added during the first call and then we receive an error in the second call, ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "filltx not enough utxos", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "Instead, we recommend that the developer place only one I think it is always better to combine these calls into a single call.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "limits-on-add-normal-inputs-function-calls-per-transaction" + }, + { + "text": "Troubleshooting Node Syncing on Test CC Chain", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "Sometimes, a developer may find after developing a new CC module that a node cannot sync with other nodes in their test network. Executing the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": " shows fewer synced blocks than synced heads. The developer may also see errors in the console log on the malfunctioning node.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "getpeerinfo", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "When this happens, the cause is most commonly rooted in the CC module's validation code. For example, the developer may have changed validation rules, and in so doing may have rendered old transactions invalid in the node's state.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "A quick remedy in this situation is to ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "manually delete the blockchain data on the malfunctioning node and resync the network.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": " Old transactions should pass validation, assuming the new validation code takes their situation into account.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "manually delete the blockchain data on the malfunctioning node and resync the network.", + "tagName": "a", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "When resyncing the node is not a viable solution, another option is to use code logging and the gdb debug software to investigate the cause of failure.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "Yet another solution, if necessary, is to setup the validation code to only be effective after a certain block height. See the following example.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "You may also use the hidden ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "reconsiderblock", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": " komodo-cli command to restart the malfunctioning node's syncing process at a desired block height.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "troubleshooting-node-syncing-on-test-cc-chain" + }, + { + "text": "Deadlocks in Validation Code", + "tagName": "h4", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": "If komodod hangs while executing Antara module validation code, consider that some blockchain functions use locks. The combination of your validation code and the locks could be causing deadlocks in the consensus mechanism. If this is the case, use functions that are non-locking instead.", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": "For example, the ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": "GetTransaction()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": " function is a locking function. Instead, use ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": "myGetTransaction()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": "eval->GetConfirmed()", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/advanced-series-6", + "closestElementReference": "deadlocks-in-validation-code" + } + ], + "antara/tutorials/beginner-series-part-0": [ + { + "text": "Komodo Developer Path | Preparation", + "tagName": "h1", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "komodo-developer-path-preparation" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "introduction" + }, + { + "text": "The following six guided tutorials cover introductory topics for a new developer in the Komodo ecosystem. This tutorial here guides the reader in creating and installing the necessary environment for the tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "introduction" + }, + { + "text": "The tutorials rely extensively on downloadable \"docker images\" of Komodo software. A downloadable docker image is an entirely self-contained virtual machine that holds installations of the software necessary to complete the tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "introduction" + }, + { + "text": "The developer does not need to alter or make any additions to the Komodo source code itself as a part of these tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "introduction" + }, + { + "text": "Full Overview of Komodo Developer Path Tutorials", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "The following is a brief summary of the docker tutorial stages.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Install Development Environment", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Create a New Blockchain (10 minutes)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Integrate the Faucet Module (5 minutes)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Connect Your Programming Language to the Tutorials (10 minutes)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Make an NFT (5 minutes)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Build a Token DEX (30 minutes)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Sync the community testnet blockchain DOC (or MARTY)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Retrieve test coins from a website faucet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Use a mobile wallet to send coins between your dev node and a community blockchain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Repeat the tutorials and test with colleagues", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "full-overview-of-komodo-developer-path-tutorials" + }, + { + "text": "Menu Options in Docker Images", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "The options from the main menu of the docker image are the following.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "TUTORIALS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "Go through the tutorials, including starting a blockchain, run a faucet, create a token dex, use a MuSig Schnorr Signature", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "Go through the tutorials, including starting a blockchain, run a faucet, create a token dex, use a MuSig Schnorr Signature", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "DOC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "dPoW community testnet blockchain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "dPoW community testnet blockchain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "MARTY", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "dPoW community testnet blockchain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "dPoW community testnet blockchain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "MAINT", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "For basic maintenance of this guided tutorial application", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "For basic maintenance of this guided tutorial application", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "EXIT", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "Return to shell", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "Return to shell", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "menu-options-in-docker-images" + }, + { + "text": "Rapid Summary (TL;DR)", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "rapid-summary-tl-dr" + }, + { + "text": "If the reader is in a hurry and does not have time to follow all of the instructions in Part I, the following three terminal commands accomplish the essential aspects of the full tutorial's objectives.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "rapid-summary-tl-dr" + }, + { + "text": "After the last command, follow the onscreen instructions.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "rapid-summary-tl-dr" + }, + { + "text": "From here, the reader may optionally skip all of the following content and proceed directly to the next article in this tutorial series.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "rapid-summary-tl-dr" + }, + { + "text": "The Unique Nature of the Docker-Image Tutorials", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "These guided tutorials are different from many other developer tutorials in the Komodo documentation.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "Normally, a developer builds the Komodo software from source. In the tutorials here, however, the developer downloads a \"docker image.\"", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "A docker image can be described as a complete, self-contained virtual machine that already bears all necessary software installed. This includes the Komodo software, the Zcash parameters, and any necessary instances of Smart Chains.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "Once the docker image is downloaded and initiated in the terminal, the developer can utilize all installed software as normal.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "In this tutorial, the docker container contains two starting nodes.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "If the reader is not familiar with docker, do not worry. These tutorials use docker only as a development tool, and not as a complex deployment strategy.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "The tutorial's image uses the default docker network. Advanced docker users are welcome to adjust docker settings as desired.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "the-unique-nature-of-the-docker-image-tutorials" + }, + { + "text": "Sending Commands to the Docker Image's Seed Node", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "The developer uses a text console within the docker container to controll the blockchain seed node during the guided tutorials. This text console interfaces with the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "127.0.0.1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": " Remote Procedure Call (RPC) server.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "The guided tutorial features a preset chain called ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": ". The parameters of this chain are an initial coin supply of ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "1000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": " and an RPC port of ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "9253", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "docker run", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": " command specifies the RPC port as a passthrough port. This makes the port available outside the docker image, should the developer choose to integrate the docker image's Smart Chain, ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": ", with an external programming environment, such as Python or Node.js.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "Supported languages include all languages that can call RPC commands in the terminal, as well as those that can implement tools such as curl, postman, insomnia, and other similar development tools.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "The docker image is suitable for testing only; do not use the image in a production setting.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "The mining node RPC port is not passed through the docker container at runtime because it is randomly generated. The developer can reconfigure this setting, but the tutorials do not cover this topic.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "sending-commands-to-the-docker-images-seed-node" + }, + { + "text": "Install Docker", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "install-docker" + }, + { + "text": "Estimated Time: 2 Minutes", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "The following instructions are written for an Ubuntu 18.04 (LTS) user with root privileges.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "After completing the following steps, a non-privileged user may continue to use the docker image without further requiring the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "sudo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " command.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Download Komodo Image", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "download-komodo-image" + }, + { + "text": "Estimated Time: 3 Minutes", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-3-minutes" + }, + { + "text": "The \"all-in-one\" Komodo image is available for development only.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-3-minutes" + }, + { + "text": "This image includes Komodo software and the Zcash parameters.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-3-minutes" + }, + { + "text": "(Optional) Install the Reduced-Size Docker Image", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "optional-install-the-reduced-size-docker-image" + }, + { + "text": "If the reader already has the Zcash parameters installed, a smaller docker image is available. Use of this image is entirely optional; the only benefit it serves is a reduced storage-space footprint.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "optional-install-the-reduced-size-docker-image" + }, + { + "text": "Check the Local Image", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "check-the-local-image" + }, + { + "text": "Once downloaded, check that the image is in your local docker catalogue using the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "check-the-local-image" + }, + { + "text": "docker images", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "check-the-local-image" + }, + { + "text": " command.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "check-the-local-image" + }, + { + "text": "Command", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "command" + }, + { + "text": "Expected Response", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "expected-response" + }, + { + "text": "Start Komodo Development Container", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "start-komodo-development-container" + }, + { + "text": "Estimated Time: 10 seconds", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-10-seconds" + }, + { + "text": "Start the container.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-10-seconds" + }, + { + "text": "This drops into a bash prompt that is ready to start the guided tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-10-seconds" + }, + { + "text": "(Optional, for Smaller Docker Image Only) Mount the Local Zcash Parameters", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "optional-for-smaller-docker-image-only-mount-the-local-zcash-parameters" + }, + { + "text": "For users relying on pre-existing Zcash parameters and using the smaller Komodo docker image, mount the parameters as a read-only volume.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "optional-for-smaller-docker-image-only-mount-the-local-zcash-parameters" + }, + { + "text": "Follow The Guided Tutorial Blockchain Starter Kit", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "follow-the-guided-tutorial-blockchain-starter-kit" + }, + { + "text": "Estimated Time: 4 minutes", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-4-minutes" + }, + { + "text": "The guided tutorial starts by automatically creating two sets of randomly generated keys that should be used throughout the tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-4-minutes" + }, + { + "text": "Alternatively, run everything from command line using the komodo-cli.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-4-minutes" + }, + { + "text": "Begin Guided Tutorial", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "begin-guided-tutorial" + }, + { + "text": "Estimated Time: 20 seconds", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": "Type ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": "learn-kmd", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": " to start the guided tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": "The \"quick start\" menu opens with the following screen.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": "Click here to proceed to the next tutorial in this series", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + }, + { + "text": "Click here to proceed to the next tutorial in this series", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-0", + "closestElementReference": "estimated-time-20-seconds" + } + ], + "antara/tutorials/beginner-series-part-1": [ + { + "text": "Komodo Developer Path | Create a Blockchain", + "tagName": "h1", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "komodo-developer-path-create-a-blockchain" + }, + { + "text": "Create a Blockchain", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "create-a-blockchain" + }, + { + "text": "Estimated Time: 10 minutes", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-10-minutes" + }, + { + "text": "The following tutorial uses the Komodo tutorial docker image to create a blockchain. This tutorial is part of a series.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-10-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-10-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-10-minutes" + }, + { + "text": "Select the Appropriate Tutorial from the Menu", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": "Begin with the first guided tutorial by selecting ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": "TUTORIALS", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": " and then ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": " from the menu. The following screen should appear. Note the detailed instructions onscreen. You may follow these through the tutorial.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "select-the-appropriate-tutorial-from-the-menu" + }, + { + "text": "Create a Seed Node", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "create-a-seed-node" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "The guided tutorial interface follows these screens:", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "From the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "SPINUP-SEEDNODE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Enter ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "1000", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " coins as the supply when prompted", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Use the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "SEED-GETINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " menu item to query the chain's current state", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "At this time, you will notice that although our ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " chain has started, the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "GETINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " menu item replies that the chain has ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "0", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "This is due to the fact that the chain is still waiting for a mining node to mine blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "At this time, you will notice that although our ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " chain has started, the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "GETINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " menu item replies that the chain has ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "0", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "This is due to the fact that the chain is still waiting for a mining node to mine blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Return to the main ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " menu.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Create Mining Node", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "create-mining-node" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " chain is designed as a blocks-on-demand Smart Chain. This type of chain uses a Proof of Work consensus mechanism for the first 128 blocks, thus forcing the mining of these first blocks, regardless of the number of transactions occurring on the chain. After block 128, the chain stops automatically mining blocks and instead waits until there are a few transactions in the mempool. This style of chain saves computing resources.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "For the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " chain these settings are managed within the pre-built docker image. Later, you will learn how to adjust these settings manually.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "While the settings of the Smart Chain are set to blocks-on-demand, a node on the network has to indicate a desire to mine for the process to begin. Follow the instructions below to launch a mining node on ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Go ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "BACK", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " in the menu until you see the options for both ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "SEED-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "MINING-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Select ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "MINING-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": ", then ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "SPINUP-MININGNODE", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Enter ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "1000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " coins as the supply when prompted (we assume here that you entered 1000 coins earlier).", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "GETINFO", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " command to query blockchain state. The chain will still have ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " blocks, but should have ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " connection. This is the connection to the seed node.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Start Mining", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "start-mining" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "From the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINING MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": " select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINING-START", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "The mining process now begins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "Mining the first several blocks requires 30 to 90 seconds", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "The mining process now begins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "Mining the first several blocks requires 30 to 90 seconds", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "From the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINING MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": " select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINER-GETMININGINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "This queries the mining state of both the network and this node", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "You may see approximately 1.0 solutions per second (", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "localsolps", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "You should see the number of blocks increase when you repeat the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINER-GETMININGINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": " menu item", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "This queries the mining state of both the network and this node", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "You may see approximately 1.0 solutions per second (", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "localsolps", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": ")", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "You should see the number of blocks increase when you repeat the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "MINER-GETMININGINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": " menu item", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-3" + }, + { + "text": "Validate An Address", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "validate-an-address" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "The guided tutorial in the docker image automatically creates a blockchain address for the user during the startup process.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Typically, when blockchain software creates an address for a user, the address is automatically imported into the user's wallet so that the user can use it.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "In these tutorials, however, we generate an address that is not automatically imported. This gives you a chance to import the address yourself under the tutorial guidance.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Make sure that you are still in the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "MINING-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " menu.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Enter the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "WALLET", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " section.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "VALIDATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " to call the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "validateaddress", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " Remote Procedure Call (RPC) method.", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "The results should be similar to the following.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Note the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " in the response. This is the address that was generated for this tutorial.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "However, note that the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "ismine", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": ". (", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "ismine", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": " stands for \"is mine\".)", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "The private key that was automatically generated by the docker image needs to be imported.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-4" + }, + { + "text": "Import Private Key for the Wallet", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "In the guided tutorials, you do not need to manage the private key directly. However, this is a good time to become familiar with the concept.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "A private key could look like the following.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "When you enter a private key such as the above into the blockchain software, the automated encryption will match this address with a public key, also called a \"pubkey\".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "A pubkey can look like the following.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "The public key is the address that receives and holds money. The private key unlocks the address and allows the user to spend money.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "Keep the private key private at all times. Never share it - not even with a member of the Komodo team.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "To import the private key that was automatically generated for you, select ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "WALLET", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": ", then ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "IMPORT-DEV-WALLET", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "This automatically executes the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "importprivkey", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": " RPC method, importing the private key and thus the address.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "importprivkey", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "Now, when funds are sent to this address, your wallet has the keys necessary to spend them.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "import-private-key-for-the-wallet" + }, + { + "text": "Check the Wallet Balance", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "check-the-wallet-balance" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "From within the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "WALLET", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " menu, select ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "BALANCE", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "This automatically executes the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " RPC method.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "getbalance", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "Note that your wallet has the full ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "1000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " coins, and a little extra.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "These ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "1000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " coins were mined into your address as a reward for mining the first block of the blockchain. This is called the Genesis Block.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "The extra fraction of a coin should be of an amount similar to the displayed ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": ".12532156", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " above.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "This extra fraction of a coin comes in part as a reward for the blocks mined.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "By default, each block mined on a Komodo Smart Chain rewards the miner with ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "0.001", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "At the time the screenshot above was taken, the mining node had mined approximately ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "125", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": " blocks, thus accounting for the extra fraction of a coin.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-5" + }, + { + "text": "List Unspent Transactions (Utxos)", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "list-unspent-transactions-utxos" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "The mining node holds the funds. The funds are represented on the blockchain as \"unspent transactions,\" or \"utxos.\"", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "Utxos can be difficult for a complete beginner to understand.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "A utxo is similar in nature to a dollar bill in your physical wallet. You can have many bills in your wallet, and the total amount of bills you have determines your total amount in your wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "Likewise, you can have many utxos in your digital wallet, and the total value of all utxos determines the total amount in your digital wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "For a full discussion on utxos, ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "turn to the Core Technology Discussions section.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "turn to the Core Technology Discussions section.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "In this guided tutorial, we will automatically execute a command that allows us to look at the utxos in our wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "Still within the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "WALLET", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": " submenu, choose the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "LISTUNSPENT", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": " option. This executes the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": " RPC method. The result should be similar to the following.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "The number of utxos here will differ according to the number of blocks your mining node has mined. Each block mined generates a new utxo in your wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-6" + }, + { + "text": "Stop Mining", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "stop-mining" + }, + { + "text": "Estimated Time: < 1 Minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": " RPC method tells a node to start and stop mining.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "Within the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "MINING", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": " menu, choose the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "MINING-STOP", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": " menu item.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "The screen will flash and then return to the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "MINING", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": " menu. This indicates that mining is stopped.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "Recall that in this guided tutorial there are only two nodes on the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": " blockchain, and that only one of the nodes is a mining node.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "As we have stopped the mining node, the blockchain itself is stopped. If we were to attempt to use the other node to send a transaction to the blockchain, no node would mine this transaction, and therefore the transaction would wait indefinitely for confirmation.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "estimated-time-1-minute-7" + }, + { + "text": "(Optional) Shut Down Both Nodes", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "If you would like to exit the tutorial at this time, you may shut down both nodes from within the docker menu.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "SHUTDOWN-NODE-MINER", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": " -> ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "SHUTDOWN-NODE-SEED", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "Otherwise, you may proceed with the tutorial series by clicking on the link below.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "Link to the next tutorial in this series", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + }, + { + "text": "Link to the next tutorial in this series", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-1", + "closestElementReference": "optional-shut-down-both-nodes" + } + ], + "antara/tutorials/beginner-series-part-2": [ + { + "text": "Komodo Developer Path | Using a Faucet", + "tagName": "h1", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "komodo-developer-path-using-a-faucet" + }, + { + "text": "Total Estimated Time: 15 minutes", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "total-estimated-time-15-minutes" + }, + { + "text": "This tutorial is part of a series.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "total-estimated-time-15-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "total-estimated-time-15-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "total-estimated-time-15-minutes" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "In the non-digital world, a faucet is a tap fitting of your regular bathroom or kitchen water supply. Faucets sometimes drip.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "A blockchain faucet is based on this concept. The digital faucet drips small amounts of coins to people that send a request to the faucet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "In this tutorial, we use a Komodo technology called an Antara Module to create a faucet on our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": " Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "There are many types of Antara Modules, and the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "Faucet Antara Module", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": " is but one of them.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "Faucet Antara Module", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "Transferring funds via the faucet will allow us to perform other tasks further in the tutorials.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "introduction" + }, + { + "text": "The Expected Current State of Our TUT1 Smart Chain", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "The mining node has ~1000 coins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "The mining node has several utxos", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "One large utxo with approximately 1000 coins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "Many small utxos, each having 0.0001 coins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "These utxos are rewards for mining blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "One large utxo with approximately 1000 coins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "Many small utxos, each having 0.0001 coins", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "These utxos are rewards for mining blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "These utxos are rewards for mining blocks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "Both the mining node and the seed node should be running", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "If you stopped the nodes at the end of the last tutorial, restart them using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "SPINUP", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " functions found within each node's menu", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "If you stopped the nodes at the end of the last tutorial, restart them using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "SPINUP", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " functions found within each node's menu", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "The mining node should be set to mine", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "To restart the mining node, use the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "MINING-START", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " function in the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " section", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "To restart the mining node, use the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "MINING-START", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " function in the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": " section", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "the-expected-current-state-of-our-tut-1-smart-chain" + }, + { + "text": "Next Steps in the Tutorial", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "On the mining node we send some of our funds to the chain's built-in faucet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "To accomplish this, in this guided tutorial we use an automated version of the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "faucetfund", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": " Remote Procedure Call (RPC)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "To accomplish this, in this guided tutorial we use an automated version of the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "faucetfund", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": " Remote Procedure Call (RPC)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "faucetfund", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "On the seed node, which currently has 0 coins, we send a request to the faucet for funds", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "next-steps-in-the-tutorial" + }, + { + "text": "Send All Funds to Self", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "send-all-funds-to-self" + }, + { + "text": "Estimated Time: 2 minutes", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "We first consolidate all the utxos in our wallet, both large and small, into a single utxo. We send this consolidated utxo to the Antara Module that acts as a faucet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "The reason we first consolidate the utxos into one is related to a subtle nuance of Antara Module technology. One requirement of all funds entering an Antara Module is that they must have been spent at least once before. This requirement simplifies some of the underlying code of an Antara Module.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "All the utxos in our current mining wallet were generated either in the first block, or they were generated as a part of a mining reward. Therefore, they have not yet been spent.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "To consolidate them in the guided tutorial, we use an automated version of the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "sendtoaddress", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Enter the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Enter the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " submenu and select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "SENDALLSELF", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "This tutorial function performs several automated tasks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "First, the function checks our total balance using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "getinfo", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "The function gathers the address that we saw earlier in the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "validateaddress", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Finally, the function sends the entire amount to this address using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "sendtoaddress", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "This sends everything in our wallet in a circular loop back into our wallet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "This tutorial function performs several automated tasks", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "First, the function checks our total balance using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "getinfo", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "The function gathers the address that we saw earlier in the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "validateaddress", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Finally, the function sends the entire amount to this address using the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "sendtoaddress", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "This sends everything in our wallet in a circular loop back into our wallet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Wait for this transaction to be mined in a block. (This process is also called \"confirming a transaction.\")", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "One way to check the status of the transaction is to use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "LIST", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " function from the last tutorial. Right after performing the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "SENDALLSELF", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": " function, you will have zero utxos in your wallet. Once a utxo reappears in your wallet, you know that the transaction is successfully mined.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "When you finally have a utxo in your wallet again, you will notice that you have two utxos instead of one. This may be surprising, but this provides a good opportunity to learn about \"dust.\"", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "The mathematics behind blockchain technology are complex, and transactions are rarely able to have perfectly clean total amounts. There is often a remnant of funds in the amount of a tiny fraction of a coin. These leftover funds remain in your wallet as a separate utxo, and as they are typically of such little value, they are effectively useless. This is why they are called \"dust.\"", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-2-minutes" + }, + { + "text": "Send Funds to the Faucet", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "send-funds-to-the-faucet" + }, + { + "text": "Estimated Time: 1 minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "In this guided tutorial, we use an automated version of the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " RPC. This takes any number of coins we choose from our wallet and sends them to the Faucet Antara Module.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "faucetfund", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Once the funds are in the module, other users on the chain can request to have some of the funds. The funds are disbursed in small amounts, and the module has a feature that discourages users from spamming the faucet to drain all of the funds at once.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "From the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": ", select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "FAUCET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Select the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "FUNDFAUCET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " function", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Enter ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "200", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " as the amount of coins to send", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "(This amount is arbitrary. We choose ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "200", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " for simplicity's sake.)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "(This amount is arbitrary. We choose ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "200", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " for simplicity's sake.)", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Claim a Small Amount of Funds from the Faucet", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-a-small-amount-of-funds-from-the-faucet" + }, + { + "text": "Estimated Time: 5 Minutes", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "BACK", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": " function on each page until you again reach the option to choose between the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "MINING-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": " and the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "SEED-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "Choose the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "SEED-MENU", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "Validate the Seed Wallet", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "Just as before, we want to make sure that we've imported our tutorial private key before we send any funds to any address.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "Select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": " and then ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "VALIDATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "If the proper ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "ismine", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": " is ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "false", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": ", we need to import the private key", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "From the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": " submenu, select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "IMPORT-DEV-WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "This automatically performs the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "importprivkey", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": " RPC for us", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "This automatically performs the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "importprivkey", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": " RPC for us", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "validate-the-seed-wallet" + }, + { + "text": "Claim Funds from the Faucet", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "Return to the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " section.", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "Select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "FAUCET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "Select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "GETFUNDS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "GETFUNDS", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " function in this guided tutorial is yet another automated version of an RPC. This time, the RPC is the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "faucetget", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " method requests funds from the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " faucet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "The Antara Module software automatically checks a few things to make sure that we are not attempting to spam and drain the faucet. One task the Antara Module requires is a small amount of work from our computer. The CPU of our computer will perform a few complicated encryption calculations. This may take a few seconds to perform.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "The time and electricity this consumes from our computer helps to offset any incentive a malicious actor would have when trying to drain the faucet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "The Antara Module will also check to make sure that our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "SEED", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " node's wallet history is relatively fresh. The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "SEED", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " node is entirely separate from the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "MINING", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": " node's data directory, and therefore no issues are detected.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "claim-funds-from-the-faucet" + }, + { + "text": "Check for the Returned Coins", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "check-for-the-returned-coins" + }, + { + "text": "Estimated Time: 1 minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "There are many RPCs available to check the balance of a wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "A common RPC is the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": ". This checks many aspects of the Smart Chain's current state, including the wallet's balance.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "One of the most common RPC's is the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " method. This returns only information about the wallet's balance.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getbalance", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "A final example is the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " RPC, which returns infromation about all utxos in the user's wallet.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "In the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " section, select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "SEED-GETINFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " to perform an automated ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getinfo", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "In the response, look for the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "balance", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " property", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "There should be at least ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "0.1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " coins in your wallet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "In the response, look for the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "balance", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " property", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "There should be at least ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "0.1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " coins in your wallet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "In the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " section once again, select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Within the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " submenu, select the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "BALANCE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " function to perform an automated ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "getbalance", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Also within the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "WALLET", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " submenu, select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "LIST", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " to perform the automated ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "listunspent", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": " RPC", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Link to next tutorial section", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + }, + { + "text": "Link to next tutorial section", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-2", + "closestElementReference": "estimated-time-1-minute-2" + } + ], + "antara/tutorials/beginner-series-part-3": [ + { + "text": "Komodo Developer Path | Connecting to Another Programming Environment", + "tagName": "h1", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "komodo-developer-path-connecting-to-another-programming-environment" + }, + { + "text": "Total Estimated Time: ~10-20 Minutes", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "total-estimated-time-10-20-minutes" + }, + { + "text": "This tutorial is part of a series.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "total-estimated-time-10-20-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "total-estimated-time-10-20-minutes" + }, + { + "text": "To return to the previous tutorial, click here.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "total-estimated-time-10-20-minutes" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "Until now we have relied on automated functions in the guided tutorials for assistance in executing Remote Procedure Calls (RPC's). Such RPC's include ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": ", and more.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "The very purpose of an RPC is to allow another programming environment to access the functionality of the software. For example, an RPC allows Python or JavaScript source code to send a secure call to the Komodo Smart Chain with a request to perform an action, and to return information about the result.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "All RPC's are available in any mainstream programming language, and we are now prepared to experiment with this feature.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "In this tutorial, we focus on the most essential aspect of this process, the Unix ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": " command. Using ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": " to access Komodo software from the source code of another environment is relatively straightforward, depending upon the programming language itself.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "The guided-tutorial software that holds our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": " Smart Chain has an exposed RPC port that we use to connect to our seed node.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "introduction" + }, + { + "text": "Inquiring About Language Wrappers", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "Before we continue with the tutorial, there is a tangential point to mention.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "In the Komodo community, for many popular programming languages there are available enhancements beyond the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": " command. These enhancements allow a developer to more easily integrate with Komodo.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "In these languages, someone from the Komodo community has created a language \"wrapper.\" A wrapper essentially allows a developer to import all the Komodo RPC calls directly into the source files of their chosen language.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "Therefore, the developer can often simply call the Komodo RPC suite into the source file and access each RPC on demand.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "For information regarding availability of language wrappers for your preferred language, please reach out to our team and to the community on ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "Discord.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "Discord.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "inquiring-about-language-wrappers" + }, + { + "text": "Obtaining the Necessary Passwords and Credentials", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "obtaining-the-necessary-passwords-and-credentials" + }, + { + "text": "Estimated Time: 1 minute", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "The Smart Chain software controls access to all your valuable assets. Allowing other software on your node to access and manipulate these assets is a potential security risk. Therefore, the Smart Chain software requires a password and username from any software that attempts to access the Smart Chain's exposed port.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "These credentials are called the rpcpassword, rpcuser, and rpcport.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "The file that holds these values is typically installed in a ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "~/komodo/COINNAME/COINNAME.conf", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " file. You can change the values in this file before launching the Komodo software, and they will be loaded at runtime.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "In our guided tutorial, the name of our coin is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": ", and therefore the name of the credential file is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1.conf", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "We have placed the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1.conf", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " file for the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "SEED", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " node in a different location, to allow for the underlying tutorial software to function properly.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Here is the location: ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "/root/.komodo/TUT1/TUT1.conf", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Obtain your ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": " RPC credentials and copy/paste them into a nearby location before continuing with the tutorial.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-1-minute" + }, + { + "text": "Using curl", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "using-curl" + }, + { + "text": "Estimated Time: 5 minutes", + "tagName": "h5", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "estimated-time-5-minutes" + }, + { + "text": "Conceptualizing the curl Command", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "A ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": " command must be sent to the Komodo software daemon through a Unix shell, or terminal.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "When using ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": " from another programming environment, the developer's source code first opens an instance of a Unix terminal. This is typically achieved through some type of environment enhancement. For example, a JavaScript developer might use Node.js to open a Unix terminal instance. The specific Node.js function the developer would use is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "child_process.exec().", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "child_process.exec().", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "The developer's source file then creates a ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": " command that fulfills the intended purposes of the developer's software, and sends this ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": " command to the Komodo software daemon.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": " command sends a json reply, which the developer captures in their source code and utilizes in any manner the developer desires.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "conceptualizing-the-curl-command" + }, + { + "text": "Installing jq", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "The returned json object is provided without human-friendly json formatting.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "To make json responses easier to read, Komodo developers typically make use of a third-party software called \"jq\".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "You can download and install jq at this link.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "You can download and install jq at this link.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "Once installed, with each ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": " command simply include a pipe and a call to jq, along with any desired jq optional parameters. Komodo developers typically include the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "-r", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": " parameter for raw outputs, to help jq interpret the raw string.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "installing-jq" + }, + { + "text": "The Anatomy of a curl Command", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": "Observe the anatomy of a sample ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": " command, as executed in the terminal. For this example, we use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "the-anatomy-of-a-curl-command" + }, + { + "text": "Command", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "| Property | Description | |\n| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| curl | the name of the Unix command | |\n| -s | the \"silent\" option; this prevents the shell from returning extraneous information about the command's progress | |\n| --user | informs the shell that there will be a username and a password directly following this property | |\n| userXXXX:passXXXX | the rpcuser and rpcpassword, as provided in the coin's .conf file | |\n| --data-binary | informs the shell that additional data should be included with the curl command, and that the data should be sent exactly as it is provided | |\n| \"{ | begin the string that contains the data object; everything within this string is sent directly to the Komodo daemon for processing | |\n| \"jsonrpc\": \"1.0\" | informs the Komodo daemon that it is receiving a json rpc object, and that the object is formatted according to version 1.0 of the Komodo RPC's source code | |\n| \"id\": \"curl test\" | informs the daemon that the json object sent is a curl command | |\n| \"method\": \"getinfo\" | informs the daemon that the developer is using the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": " RPC | |\n| \"params\": [] | provides the required or optional parameters that accompany the Komodo RPC; in this case, the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": " RPC does not have any parameters, and therefore the array is empty | |\n| }\" | end of the string that contains the data object | |\n| -H | informs the shell that there is an extra http header to include | |\n| 'content-type: text/plain;' | the http character set parameter; states that the header is provided in plain-text format | |\n| ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "http://127.0.0.1:9253/", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": " | the http destination. The 127.0.0.1 tells the shell to serve the content to the node's localhost server. The :9253 extension is the rpcport, as provided in the coin's .conf file | |\n| | jq -r | instructs the shell to pipe the response through the jq software; the -r instruction informs jq that this is a raw object |", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "http://127.0.0.1:9253/", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "The response to the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": " RPC ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": " command is as follows. Note that this is a json string and the developer must actively convert the response into a json object. For example, in JavaScript the appropriate function is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "JSON.parse()", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response" + }, + { + "text": "Mine on the Seed Node Using curl", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": " to tell the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "SEED", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": " node to begin mining the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": " Smart Chain. Use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": " RPC for this function.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "Note that this RPC requires parameters in the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": " command: ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "\\\"params\\\": [true,1]", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "mine-on-the-seed-node-using-curl" + }, + { + "text": "Command", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": " RPC always returns ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": "null", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": " as a response.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response-2" + }, + { + "text": "Discover the State of Mining on the Seed Node", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "discover-the-state-of-mining-on-the-seed-node" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "discover-the-state-of-mining-on-the-seed-node" + }, + { + "text": "getmininginfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "discover-the-state-of-mining-on-the-seed-node" + }, + { + "text": " RPC to ensure that the command executed successfully.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "discover-the-state-of-mining-on-the-seed-node" + }, + { + "text": "getmininginfo", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "discover-the-state-of-mining-on-the-seed-node" + }, + { + "text": "Command", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response-3" + }, + { + "text": "Stop Mining on the Seed Node", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": "To instruct the node to cease mining, we again use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": " RPC, but this time we provide the parameter as ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "stop-mining-on-the-seed-node" + }, + { + "text": "Response", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response-4" + }, + { + "text": "Proceed to next tutorial article in the series.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response-4" + }, + { + "text": "Proceed to next tutorial article in the series.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-3", + "closestElementReference": "response-4" + } + ], + "antara/tutorials/beginner-series-part-4": [ + { + "text": "Komodo Developer Path | Understanding Tokens", + "tagName": "h1", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "komodo-developer-path-understanding-tokens" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Each Smart Chain in the Komodo ecosystem can act as a fully tokenizable platform. This provides many opportunities to the developer for creating on-chain assets that represent varying types of value for their users.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "For example, tokens can be used to represent real world assets, and users can then trade these tokens using Komodo's ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Token DEX", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": " features. The developer could also create tokens that provide incentives to their audience. Or, tokens can represent collectible assets. These are but a few examples of the usefulness of on-chain tokenization.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Token DEX", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "introduction" + }, + { + "text": "Conceptualizing Tokens", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "conceptualizing-tokens" + }, + { + "text": "A Token is a Satoshi", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "All Smart Chain coins abide by the Bitcoin-protocol standard wherein 1 coin is divisible for up to eight decimal places: ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "1.00000000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": ". The smallest unit of a Smart Coin therefore is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "0.00000001", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": " coins. By convention it is called a \"satoshi,\" in honor of the inventor of the Bitcoin protocol.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "On a Smart Chain, each individual token is derived from one individual satoshi. Therefore, each coin can be transformed into 100,000,000 tokens.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "At the time of the creation of these tokens, the creator can define their properties, grant meta data to them, and establish the nature of their scarcity.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "All of this functionality is established and secured through the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "Tokens Antara Module", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "Tokens Antara Module", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "a-token-is-a-satoshi" + }, + { + "text": "Fungible Token Creation", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "With ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": " of our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": " tutorial coins, we can create ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "10,000,000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": " tokens in one creation transaction using the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "tokencreate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "tokencreate", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "In the process of creation we can choose a name for these tokens.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "All of the tokens created from this single transaction are fungible one with another, and maintain scarcity across the Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "(It is even possible with Antara technology to maintain token scarcity across multiple chains, but this is an advanced topic that we do not cover here.)", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "fungible-token-creation" + }, + { + "text": "Non-Fungible Token Creation", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": "Alternatively, rather than creating a large collective of many fungible tokens, you could instead create non-fungible tokens. To achieve this, use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": "tokencreate", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": " RPC to create one token at a time. Each token requires ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": " satoshi, plus transaction fees.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "non-fungible-token-creation" + }, + { + "text": "Attaching Data to Tokens", + "tagName": "h4", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "We can attach meta data to the tokens at their creation.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "The maximum size of data that can fit in a single Komodo transaction is ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "10000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": " bytes. This is enough to include all sorts of data, and even simple images.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "The developer is naturally free to use their imagination in the design of this data. For example, you can describe their purpose and add a json data structure that informs other software of the properties of this token.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "Advanced developers can even add functionality to allow the tokens to gain new data over time as they are passed through transactions.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "attaching-data-to-tokens" + }, + { + "text": "Create a Token Set on TUT1 Smart Chain", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "In our guided tutorial, we now create ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "50,000", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " tokens that we give the name ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "GOLD", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Enter the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Select the ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " submenu", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Select ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "CREATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Enter the name ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "GOLD", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Use ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.0005", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " tokens", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "For the short description ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Some GOLD tokens", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "This creates 50,000 GOLD tokens by sending 0.0005 TUT1 coins to the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Tokens Antara Module.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Tokens Antara Module.", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Wait a minute or so for the transaction to be mined and then use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "GETINFO", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " function to check the balance of our wallet. There are now ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.0993", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " coins remaining from the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " coins we had previously.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "We used ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.0005", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " coins to create the tokens.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "We had a fee paid to the miners of ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.0001", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "We also had another fee of ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "0.0001", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " coins that were sent to a special address in the Tokens Antara Module, called the \"global address.\" The transaction for this fee had a small amount of data that permanently tells the entire ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "TUT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " Smart Chain community that we created these tokens. Therefore, if other users or developers want to learn about our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "GOLD", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": " tokens, they have a starting point in this global address.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-token-set-on-tut-1-smart-chain" + }, + { + "text": "Seed or Mining Node RPC: tokenlist & tokeninfo to find details of the tokens", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "To see our tokens afterwards, we can use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokenlist", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " RPC's.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokenlist", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokeninfo", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "In our guided tutorial, we have automated functions available to make this simpler.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "LIST", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "SEED-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "INFO", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "GOLD", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "LIST", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " calls the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokenlist", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " RPC. This returns an array of token ids. A \"token id\" is the id of the transaction that created the token. We use this token id nearly every time hereafter when we transact with these tokens.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "INFO", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " calls the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " RPC. This RPC requires the token id of the token we desire to inspect. In our case, we chose the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "GOLD", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": " token.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "seed-or-mining-node-rpc-tokenlist-and-tokeninfo-to-find-details-of-the-tokens" + }, + { + "text": "Create SILVER Tokens", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Repeat the process to create ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "SILVER", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": " tokens.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "SEED-NODE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "CREATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Name: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "SILVER", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Amount: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "0.002", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Description: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Some SILVER tokens", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Wait for confirmation and then verify that our ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "0.0993", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": " TUT1 balance is reduced to ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "0.0971", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-silver-tokens" + }, + { + "text": "Create ROCK Tokens", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "CREATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Name: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "ROCK", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Amount: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "0.04", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Description: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Some ROCK Tokens", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "LIST", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": " function to find the token id for ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "ROCK", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": ", and then use the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "TOKENS", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": " > ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "ROCK", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": " function to retrieve the token's full information. We see the token id included as a part of the returned data.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-rock-tokens" + }, + { + "text": "Create a Non-Fungible Token", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Switch to the mining node.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Recall that to create a non-fungible token, we simply use only one satoshi of the coin.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "MINING-MENU", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "CREATE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Name: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "NFT1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Amount: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "0.00000001", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Description: ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "First unique token", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "create-a-non-fungible-token" + }, + { + "text": "Compare the Tokens on One Node Against the Other", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "Check the balance of the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "NFT1", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": " token on both the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "SEED", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": " node and the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "MINING", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": " node.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "TOKENS", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "BALANCE", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": " > ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "NFT1", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "Note that the balance is different for the two.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "compare-the-tokens-on-one-node-against-the-other" + }, + { + "text": "Tutorial Series Conclusion", + "tagName": "h2", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Thank you for following along on this introductory tutorial.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "We have covered many topics using our guided-tutorial software.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "To learn more about any particular aspect, visit the links below.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "If you are ready to proceed with the next tutorials in our educational series, return to the ", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Learning Launchpad", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": " section.", + "tagName": "p", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Learning Launchpad", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create a new Smart Chain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create a Default Smart Chain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_name", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create a Default Smart Chain", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create a Default Smart Chain", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_name", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_name", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create a coin supply", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_supply", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_supply", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "ac_supply", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create and use a faucet", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Faucet Antara Module", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Faucet Antara Module", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Faucet Antara Module", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Mine transactions", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "setgenerate", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "setgenerate", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Create fungible and non-fungible tokens", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Tokens Antara Module ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Tokens Antara Module ", + "tagName": "li", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + }, + { + "text": "Tokens Antara Module ", + "tagName": "a", + "path": "antara/tutorials/beginner-series-part-4", + "closestElementReference": "tutorial-series-conclusion" + } + ], + "antara/tutorials/dilithium-module-tutorial": [ + { + "text": "Dilithium Module Tutorial", + "tagName": "h1", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "dilithium-module-tutorial" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "This tutorial provides a front-end developer all the knowledge necessary to create a graphical user interface (GUI) for the Dilithium Antara Module. The tutorial touches only briefly on the actual use cases of the Dilithium module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "This documentation does not discuss the underlying math and principles of quantum-resistant blockchain computing. Please inquire with our team for more details.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Because quantum computing is not yet realized in the technology industry, Dilithium is listed in the documentation only for display purposes.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The following tutorial should be considered \"Advanced,\" and we recommend that any user attempting to implement Dilithium skim the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Advanced Tutorial Series", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": " to obtain a general understanding of the more technical aspects of working with Antara Module technology.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Advanced Tutorial Series", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Please follow the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "instructions for installing Komodo software from source.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "instructions for installing Komodo software from source.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "This installs the normal Komodo software.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "The MUSIG Test Smart Chain", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "In this tutorial we use the test chain ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "MUSIG", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": " to display the Dilithium Module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "You may replace the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "MUSIG", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": " ticker with the relevant ticker of any Smart Chain in the tutorial ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": " commands and achieve the same effect.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "To launch the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "MUSIG", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": " Smart Chain, enter the command below in the terminal.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-musig-test-smart-chain" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command" + }, + { + "text": "Ensure that the chain is syncing properly by watching the returned values from the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command" + }, + { + "text": " method. The count of blocks synced should increase.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command" + }, + { + "text": "A Note Regarding the Installation of the Necessary Libraries in the Source Code", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "Dilithium is not active on a default Komodo Smart Chain. For the Dilithium Antara Module to function on the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "MUSIG", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": " chain, we now add an additional feature to the default installation.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "The user must download an associated C library (also called a cclib module) and include this library in the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "src", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": " directory when compiling Komodo from source. (We repeat the compilation process in a moment.)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "Currently, this Dilithium cclib module is included as a part of the Soduku cclib module. This is a matter of convenience for the developers and testers.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "If a Komodo customer is interested in implementing Dilithium, please inquire with our team. We would be happy to separate Dilithium's cclib module from the Sudoku cclib module, and make Dilithium available in the default Antara Modules.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "a-note-regarding-the-installation-of-the-necessary-libraries-in-the-source-code" + }, + { + "text": "Stop the Daemon and Install the Appropriate cclib Module", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Stop the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "MUSIG", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": " daemon. (If the chain has not finished syncing to the network, that is okay for the moment. We can allow the syncing process to complete later.)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Return to the instructions for compiling Komodo software from source and follow them again until you complete the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "./zcutil/build.sh", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": " step, and pause.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Instructions for installing Komodo software from source", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Instructions for installing Komodo software from source", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Now execute the following commands. These add the necessary cclib module for Dilithium.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "stop-the-daemon-and-install-the-appropriate-cclib-module" + }, + { + "text": "Begin Walkthrough", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "The Dilithium walkthrough agenda is as follows.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "Manually create a handle (a handle is a Dilithium address that is human readable)", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "Send coins to this handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "Send coins from this handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "Show code examples for implementing Dilithium into a user interface (UI)", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "A terminal user interface (TUI) with Dilithium functionality can me found ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "here", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "A terminal user interface (TUI) with Dilithium functionality can me found ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "here", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "here", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "begin-walkthrough" + }, + { + "text": "Understand the Comparison Between Q Transactions and Z Transactions", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understand-the-comparison-between-q-transactions-and-z-transactions" + }, + { + "text": "The Dilithium Module's API documentation contains an explanation of the nature of Dilithium transactions. These are called \"Q Transactions,\" and can be compared to the \"Z transactions\" that are prominently featured in privacy transactions.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understand-the-comparison-between-q-transactions-and-z-transactions" + }, + { + "text": "Q Transactions are referenced frequently throughout the tutorial. If necessary, please read the Dilithium Module's API documentation's introduction before continuing.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understand-the-comparison-between-q-transactions-and-z-transactions" + }, + { + "text": "Link to Dilithium Module API Introduction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understand-the-comparison-between-q-transactions-and-z-transactions" + }, + { + "text": "Link to Dilithium Module API Introduction", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understand-the-comparison-between-q-transactions-and-z-transactions" + }, + { + "text": "Start the daemon with a ", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "pubkey", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " and backup its ", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "privkey", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "Initiate komodod with an active ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-pubkey", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "For instructions on launching with a pubkey, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "follow these linked instructions.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "follow these linked instructions.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "If you are using a chain other than MUSIG, and if this chain's launch commands include the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " parameter, do not change this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "ac_pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " setting.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-ac_pubkey", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "Simply add the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " setting to the launch commands.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " parameters are entirely separate parameters with different functionality.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "Once your Smart Chain's daemon finishes loading, check that the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": " is set properly.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "privkey" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response" + }, + { + "text": "You should see the correct ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response" + }, + { + "text": " in the returned json object.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response" + }, + { + "text": "Backup the Private Key to Your Pubkey", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": " RPC to export the private key of your pubkey and save this in a safe location.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "dumpprivkey", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "Without this private key, any handles created for Dilithium will not be accessible.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "Link to ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": " RPC", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "Link to ", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "dumpprivkey", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": " RPC", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "backup-the-private-key-to-your-pubkey" + }, + { + "text": "Create a Dilithium Keypair", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": "A Dilithium keypair is a matching set of a ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": "privkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": " (private key).", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": "Use a generated random string to create a keypair.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-dilithium-keypair" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": "To understand the need for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": "%22", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": " strings in the command, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": "read this linked CC Lib Formatting documentation.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": "read this linked CC Lib Formatting documentation.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-2" + }, + { + "text": "| Response Key | Value Description |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| status | states that we are using an automated random seed generator |\n| seed | this randomly generated seed is the base value on which many private keys can be generated, including the private key below; this seed is sensitive information and should be stored in a safe and secret location |\n| privkey | the private key (privkey) is also sensitive information; this privkey is the basis for the pubkey below |\n| pubkey | the public key that receives funds; this public key will later be associated with a handle |\n| pkaddr | a hashed representation of the Dilithium pubkey and privkey; this value is not necessary for Dilithium functionality, but rather is included as an easy method to compare Dilithium pubkeys and privkeys |\n| skaddr | a hashed representation of the Dilithium pubkey and privkey; this value is not necessary for Dilithium functionality, but rather is included as an easy method to compare Dilithium pubkeys and privkeys |\n| result | whether the command executed successfully |", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-2" + }, + { + "text": "Save the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-2" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-2" + }, + { + "text": " value in a safe and secret location. Optimally, you may save the response as well.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-2" + }, + { + "text": "Check For Handle Availability", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "check-for-handle-availability" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "check-for-handle-availability" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "check-for-handle-availability" + }, + { + "text": " RPC to check for handle availability.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "check-for-handle-availability" + }, + { + "text": "handleinfo", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "check-for-handle-availability" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-3" + }, + { + "text": "Register an Available Handle", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "register-an-available-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "register-an-available-handle" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "register-an-available-handle" + }, + { + "text": " to register the handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "register-an-available-handle" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-5" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": "The returned ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": " value is a signed raw transaction and must be broadcast using ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-4" + }, + { + "text": "Broadcast the Raw Transaction", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "broadcast-the-raw-transaction" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-5" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-5" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-5" + }, + { + "text": " RPC again to check that we have successfully registered the handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-5" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-6" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " value above can be thought of as the Dilithium address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " used to create the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " are now tied to the Dilithium ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "pkaddr", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " public key, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "PMrTr4qgErBbDkwxuSdfRNXkrSMoxbhb2R", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "This ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "pkaddr", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " keypair can be changed later.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "However, the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " associated with the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": " cannot be changed.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-6" + }, + { + "text": "Send Coins to the Handle", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "Use the Dilithium ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": " RPC to send coins from a ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "t", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": " address to our new ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "The paramters for this RPC are ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "amount", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-to-the-handle" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-7" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-8" + }, + { + "text": "Broadcast the Returned Hex Value", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "broadcast-the-returned-hex-value" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-9" + }, + { + "text": "Our handle, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-9" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-9" + }, + { + "text": ", has 7.77 coins.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-9" + }, + { + "text": "Send Coins From One Handle to Another", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "You can specify outputs of a Qsend transaction in two ways.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "ScriptPubKey", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " for a given normal address", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "this can also be called an \"R address\", as all Komodo base58 encoded addresses begin with R", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "this can also be called an \"R address\", as all Komodo base58 encoded addresses begin with R", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "destpubtxid", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " for a given Dilithium handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "In this tutorial we send ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " coins to the handle ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "Assume this handle already exists.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "Because we are sending coins from one Q handle to another, this is a ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " -> ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " transaction, and therefore we use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "Qsend", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": " RPC", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-coins-from-one-handle-to-another" + }, + { + "text": "Obtain the destpubtxid From the KomodoFan Handle", + "tagName": "h5", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "To send funds to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": " handle, we first need the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": " associated with this handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": " RPC to this effect.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxid-from-the-komodo-fan-handle" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-10" + }, + { + "text": "The Meaning of qUTXO", + "tagName": "h5", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "In the next step, we encounter the term \"qUTXO\" or \"qutxo\" for simplicity.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "A \"qutxo\" is a utxo that is related to the Dilithium Module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "For more general information about utxos, please ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "read the Core Technology Disucssion section here.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "read the Core Technology Disucssion section here.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-meaning-of-q-utxo" + }, + { + "text": "Send Funds Using Qsend", + "tagName": "h5", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "The first two arguments for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "Qsend", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " RPC are the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " values of the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "handle", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " that is sending coins. We refer to this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " value as ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "mypubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " in the following examples, for simplicity's sake.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "The remaining arguments in the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "Qsend", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " RPC specify each output of the transaction. The inputs are chosen automatically.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "The module also automatically creates a Dilithium \"change\" output from a qutxo. (Recall that \"change\" is the amount leftover from a utxo that must be returned to the sender.) In the Dilithium module, change is sent to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "\"mypubtxid\"", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "Broadcast this transaction.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-funds-using-qsend" + }, + { + "text": "Understanding the Inputs and Outputs of a Q -> Q Transaction", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-a-q-q-transaction" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-a-q-q-transaction" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-a-q-q-transaction" + }, + { + "text": " RPC to observe the vins and vouts of our qutxos.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-a-q-q-transaction" + }, + { + "text": "Click Button Below to View Full Response", + "tagName": "h5", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "click-button-below-to-view-full-response" + }, + { + "text": "Breaking Down the Response", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "breaking-down-the-response" + }, + { + "text": "Let's pull this apart piece by piece. We begin with the input.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "breaking-down-the-response" + }, + { + "text": "Transaction Vins (Inputs)", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "transaction-vins-inputs" + }, + { + "text": "We see that this input comes from our transaction created in a previous step. The address ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "transaction-vins-inputs" + }, + { + "text": "RWzd2iZT7rTU91mJVXzXpK8NWseMgZnW74", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "transaction-vins-inputs" + }, + { + "text": " is associated with our handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "transaction-vins-inputs" + }, + { + "text": "An important rule to point out here is that there can be any number of inputs (technically called \"vins\"), but they all must come from the same handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "transaction-vins-inputs" + }, + { + "text": "Observe the Vouts (Outputs)", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "observe-the-vouts-outputs" + }, + { + "text": "The First Output (vout0)", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "In the first output (technically called a \"vout\") we see the address associated with the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": " handle: ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "RGBrSwrGR4ypFFufyvHEuMMbxs7ETD8Xv7", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "0.1", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": " coins are sent to this address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "type", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": " key shows a value of ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "cryptoconditions", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": ", indicating that this transaction is now associated with the Dilithium Antara Module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-first-output-vout0" + }, + { + "text": "(Optional) Check the Address Belongs to the Handle", + "tagName": "h5", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "Recall that in the Antara Framework every ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " address has a unique Antara Address for each module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "All handles created under the same ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " will store their Qutxos in an Antara Address that is unique both to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " and to the Dilithium Module.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "Therefore, the Dilithium handle is tied to the associated Dilithium Antara Address and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " as well.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "cclibaddress", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " RPC to verify that we have KomodoFan's Antara Address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "cclibaddress", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "To achieve this, we use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " returned from the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "cclib handleinfo 19 \"[%22KomodoFan%22]\"", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": " command we executed previously.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "optional-check-the-address-belongs-to-the-handle" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": "As shown above, the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": "\"PubkeyCCaddress(CClib)\"", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": " provides a matching address for ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-8" + }, + { + "text": "The Second Output (vout1)", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "The second output (also called ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "vout1", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": ") is the change qutxo that sends our leftover funds back to our ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": " Antara Address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "To verify that this is the correct Antara address, we can again utlize the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "cclibaddress", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-second-output-vout1" + }, + { + "text": "Command", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "command-9" + }, + { + "text": "Response", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-11" + }, + { + "text": "The value of ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-11" + }, + { + "text": "\"myCCAddress(CClib)\"", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-11" + }, + { + "text": " matches the output.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "response-11" + }, + { + "text": "The Final Output (opreturn vout)", + "tagName": "h6", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "The final output (which we can also call ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "vout2", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "opreturn vout", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ") contains our OP_RETURN data.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "This ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " value of this output contains needed information about the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " of the inputs and the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxids", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " of the outputs.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "The hex value contains more information than we need. The full value is as follows: ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "E_MARSHAL(ss << evalcode << 'Q' << destpubtxid << sig << voutpubtxids)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "For now, we are only interested in the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "voutpubtxids", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " values.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "The information is hex-encoded and provided in little-endian format. We would like to convert the data into big-endian format.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "There are many methods available for decoding a hex value, and the language of the developer often has built-in functions to accomplish this. For example, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "this linked Stack Exchange discussion", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " provides possible methods for Python developers.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "this linked Stack Exchange discussion", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "Once converted to big endian, we have the following.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "Observe that once converted, the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " handle is the leading data: ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "d60d224d7855a40507064c5ca72ed7d84a54340174eb16e31d079e4b4f230940", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "Directly after is the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " for ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ": ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "af710c0fd6aeb54556ee401803bc4cc39ea9002ad5228f308b27eb3af0e4c4b6", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "From this we verify that ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "vout0", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " was addressed to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " handle and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "vout1", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " was addressed to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "Since we know there are ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " vouts (aside from the opreturn vout), we know that ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "vout1", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " can be found at index position ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "[:64]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "vout0", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " is found at ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "[64:128]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "We again see ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "'s ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "d60d224d7855a40507064c5ca72ed7d84a54340174eb16e31d079e4b4f230940", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " at ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "[-76:-12]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "This indicates the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " of the inputs. The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": " of the sender will always be the same position in a Qsend transaction's OP_RETURN, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "[-76:-12]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-final-output-opreturn-vout" + }, + { + "text": "Create A Complex Qsend Transaction", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "The above Q transaction was relatively simple. Let's create a complex Q transaction that includes outputs to multiple R addresses and multiple Dilithium handles.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "This transactions sends ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "7.6699", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " coins from the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "qUTXO", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " of the previous transaction to the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "KomodoHaxor", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "This transaction sends ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "1", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " coin to to the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "KomodoFan", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " handle, ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "1.1", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " coins to the handle ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "LABSLover", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": ", and ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "1.2", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " coins to the R address ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "RRyyejME7LRTuvdziWsXkAbSW1fdiohGwK", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "The transaction also sends ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "1.3", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " coins to ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "bKnMWGuXC5HEyxk3GttsT1a9TtYWKbBpEP", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": ", a multisig address, to demonstrate that Dilithium Qsend transctions work with essentially any script hash", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "Qsend transactions do have one limitation. The Dilithium Module's functionality requires that any 32-byte hex string in a transaction be the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "Therefore, the Dilithium module cannot send a transaction to a 32-byte ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "This is an uncommon ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": " under normal circumstances, and therefore this should not be an issue for most users.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-complex-qsend-transaction" + }, + { + "text": "The Change Transaction to KomodoHaxor", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-change-transaction-to-komodo-haxor" + }, + { + "text": "This transaction automatically sends the change back to our handle, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-change-transaction-to-komodo-haxor" + }, + { + "text": "KomodoHaxor", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-change-transaction-to-komodo-haxor" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "the-change-transaction-to-komodo-haxor" + }, + { + "text": "Obtaining the destpubtxids for Other Handles", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "Our transaction requires that we first obtain the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " for all other handles, and the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "ScriptPubKey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " for the intended R addresses.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "We obtained the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "KomodoFan", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " in the previous step.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " RPC to obtain the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-destpubtxids-for-other-handles" + }, + { + "text": "Obtaining the scriptPubkey for R Addresses", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "We can use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": " rpc command to obtain the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "\"scriptPubKey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": " value for both ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "RRyyejME7LRTuvdziWsXkAbSW1fdiohGwK", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "bKnMWGuXC5HEyxk3GttsT1a9TtYWKbBpEP", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtaining-the-script-pubkey-for-r-addresses" + }, + { + "text": "Send the Qsend Transaction", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-the-qsend-transaction" + }, + { + "text": "We now have everything we need to assemble and send the complex Qsend transaction.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "send-the-qsend-transaction" + }, + { + "text": "Broadcast the Transaction Using sendrawtransaction", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "broadcast-the-transaction-using-sendrawtransaction" + }, + { + "text": "Understanding the inputs and outputs of the above transaction", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": " RPC to observe the inputs and outputs of the response.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": "getrawtransaction", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": "As seen above, this transaction spent the qutxo created in the previous step.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "understanding-the-inputs-and-outputs-of-the-above-transaction" + }, + { + "text": "Convert the Opreturn Hex Value to Big Endian", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "Convert the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " value of the opreturn to big endian.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[:64]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " we see the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "destpubtxid", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " for vout 4: ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "d60d224d7855a40507064c5ca72ed7d84a54340174eb16e31d079e4b4f230940", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[64:128]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " is null bytes", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "Vout 3 is addressed to a normal address, as opposed to a Dilithium handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "Vout 3 is addressed to a normal address, as opposed to a Dilithium handle", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[128:192]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " is null bytes", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[128:192]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " is vout 2", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[128:192]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " is vout 2", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[192:256]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " we see the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "destpubtxid", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " for the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "LABSLover", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " handle: ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "b625e38064cb0c940a55f0dca7e6b60270aac090d0dd90d4e43e924d696564a2", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[256:320]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " we see the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "destpubtxid", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " for the ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "KomodoFan", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " handle: ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "af710c0fd6aeb54556ee401803bc4cc39ea9002ad5228f308b27eb3af0e4c4b6", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "At position ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "[-76:-12]", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": " we see the sender's ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "destpubtxid", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": ": ", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "d60d224d7855a40507064c5ca72ed7d84a54340174eb16e31d079e4b4f230940", + "tagName": "li", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "convert-the-opreturn-hex-value-to-big-endian" + }, + { + "text": "Find the Balance of an Arbitrary Handle", + "tagName": "h2", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "To find the balance in a normal address we might use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "A handle, however, is based on a Dilithium-related Antara Address, and these are more complicated. In this section of the tutorial, we use a series of RPCs and our own customized code to find all the utxos in a public Dilithium handle of our choosing.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "We can call this customized action a \"Q listunspent\" function, by way of conversation.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "find-the-balance-of-an-arbitrary-handle" + }, + { + "text": "Obtain the Antara Address for the Handle", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Our target for this example is the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "cclibaddress", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC to obtain the Antara Address of this handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "handleinfo", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "cclibaddress", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Use the returned ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " value with the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "cclibaddress", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "\"PubkeyCCaddress(CClib)\"", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " value is the Antara Address for ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": ": ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "RGBrSwrGR4ypFFufyvHEuMMbxs7ETD8Xv7", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "getaddressutxos", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC to find the utxos in this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "PubkeyCCaddress(CClib)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " address.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "getaddressutxos", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "In the returned response we observe many utxos.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "We cannot assume that all of the returned utxos belong to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " handle, however. Recall that a handle must be associated with a single Antara Address, but an Antara Address can have multiple handles. Therefore, some of the above utxos belong to ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": ", and some may belong to another handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "To ascertain which utxos belong to which handle, we must write a script that performs several tasks. First, the script iterates over each utxo and checks whether the utxo is a \"Dilithium send transaction\" or a \"Dilithium Qsend transaction\". For those that are Qsend transactions, the script then checks whether each utxo belongs to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Generally, any utxo with a value of ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "0.0001", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " coins can be ignored in this circumstance. These utxos are created by the Dilithium ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC and are used to index handles for a given pubkey.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "For this example, we select one of the above utxos for closer inspection. Our first task is to ascertain whether this utxo is related to Dilithium.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC with the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Check whether this transaction has an opreturn vout. If there is no opreturn, move onto the next utxo from ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "getaddresstxids", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "This transaction does in fact have an opreturn output.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "decodeccopret", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC to decode the hex value of the opreturn.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "decodeccopret", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "(The only argument for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "decodeccopret", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " RPC here should be the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": " value of the opreturn output.)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-antara-address-for-the-handle" + }, + { + "text": "Note the Eval Code", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "Note that there is a returned key by the name of ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "eval_code", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "By design each Antara Module has its own unique eval code. This allows a developer to recognize which specific Antara Module a transaction regards.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "eval_code", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": " value here matches the eval code for the Dilithium Antara Module, and therefore we know that we are dealing with a Dilithium utxo.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "(To learn more about eval codes, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "read this linked section of the Advanced Tutorial Series.)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "read this linked section of the Advanced Tutorial Series.)", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-eval-code" + }, + { + "text": "Note the Function Value", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "By design, an Antara Module has unique types of transactions. The ability to create unique transactions is a key power of the Antara Framework.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "Within an Antara Module can be numerous types of transactions, and therefore each transaction type needs its own identifier.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "function", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " key in the structure of the response returned above is this identifier.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "In our response above we see ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "\"function\": \"Q\",", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": ". We need to interpret this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "Q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " value into a more common term.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "To obtain a list of all types of transactions for all Antara Modules on a Smart Chain, use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "cclibinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "cclibinfo", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "Towards the bottom we see a json object with ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "\"funcid\": \"Q\",", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "\"method\": \"Qsend\",", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "This tells us that this transaction was executed using Dilithium's ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "Qsend", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "The response also confirms that the eval code for Dilithium is ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "19", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " (or ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "0x13", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": " in hex).\n(We discuss each of the Dilithium-related function types in the above response later in this document.)", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "note-the-function-value" + }, + { + "text": "Obtain the destpubtxids of the Inputs and the Outputs", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "Now that we know this is in fact a Dilithium Qsend transaction, let's use the same process as before to get the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "destpubtxids", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " of the inputs and outputs.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "First, convert the opreturn's ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " value to big endian.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "From our ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " response earlier we already know this transaction has two outputs (besides the opreturn output). Therfore, the Dilithium handle's ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " for vout1 is located at position ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "[:64]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " and the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "destpubtixd", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " for vout0 is located at ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "[64:128]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "In vout1's position we find ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "adebadd9483bb3d6edd10304dc162506a36adc4aabb14dd13a623042f339236d", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "In vout0's position we find ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "fc6c067ec1091ec0d57ab86812af85a8650b10c6f1f0b954fc8db8c0e877e2a9", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "Neither of these vouts match the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " handle, and therefore this utxo does not belong to the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "obtain-the-destpubtxids-of-the-inputs-and-the-outputs" + }, + { + "text": "Create a Customized Function to Determine the Full Handle", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "To find out which handles these do belong to, we need to write a more elaborate customized function in a programming language of our choice.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Any programming language that is capable of sending RPCs to the daemon is capable of creating this type of customized function.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "For this tutorial, we use the Python language and the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "python3", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " toolset. We also use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "slickrpc", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " library to interact with the daemon.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "slickrpc", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "(To learn how to use the slickrpc library, ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "visit this linked documentation.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "visit this linked documentation.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " to obtain the opreturn for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ": ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "adebadd9483bb3d6edd10304dc162506a36adc4aabb14dd13a623042f339236d", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "In all ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "destpubtxids", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " in the Dilithium Module, the value at the position ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "[12:14]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " provides the length of the handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "In this case, the value is ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "05", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ". Therefore, the 5 bytes following this value is the handle, provided in ascii format.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Observe the following 5 bytes at ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "[14:24]", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " and we see ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "6e65773230", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Once converted from ascii to text this provides the value: ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "new20", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "This should be the handle that we seek.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "handleinfo", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " RPC to verify that this is the handle for the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": " of the value ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "adebadd9483bb3d6edd10304dc162506a36adc4aabb14dd13a623042f339236d", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "create-a-customized-function-to-determine-the-full-handle" + }, + { + "text": "Repeat the Same Process for vout0", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": "Repeat the same process for vout0, where the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": " is ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": "fc6c067ec1091ec0d57ab86812af85a8650b10c6f1f0b954fc8db8c0e877e2a9", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": " and returned response is the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": "new21", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": " handle.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-the-same-process-for-vout0" + }, + { + "text": "Repeat This Process on Each Utxo", + "tagName": "h4", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Repeat this full process on each utxo provided in the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "getaddressutxos", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " output above.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "The customized approach we take for this tutorial is to use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "dil_listunspent", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " function ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "provided in this linked repository.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " The source code and function here is also based on python3.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "provided in this linked repository.", + "tagName": "a", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Having executed the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "dil_listunspent", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " python3 function we receive the following response for our pubkey.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "dil_listunspent", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " python3 function also decodes this tranasaction:", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "This is a ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "t", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " Dilithium ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " qutxo. Here is one possible method to decode this type of transaction.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "decodeccopret", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " RPC on this transaction's opreturn ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " value and observe that the returned ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "function", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "x", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": ". This tell us that this transaction is a Dilithium send ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "t", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " -> ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "q", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Convert this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " value to big endian:", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Take the first 32 bytes of this (position [:64]):", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "This is the matching ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " to which vout0 was sent in our transaction.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Use the same ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "handle_get", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " function from the previous step and we find that this ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "destpubtxid", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " is associated with the handle ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "LABSLover", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "Collecting all the vouts of the ", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": "qutxos", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + }, + { + "text": " that belong to this handle and creating a sum of their balances provides the total balance.", + "tagName": "p", + "path": "antara/tutorials/dilithium-module-tutorial", + "closestElementReference": "repeat-this-process-on-each-utxo" + } + ], + "antara/tutorials/gateways-module-tutorial": [ + { + "text": "Gateways Module Tutorial", + "tagName": "h1", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "gateways-module-tutorial" + }, + { + "text": "Tutorial", + "tagName": "h2", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "In this tutorial, we will create a gateway that can serve to represent KMD. The following are the steps in the gateway-creation process:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Create a new Smart Chain and provide representative tokens", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Prepare a special oracle to monitor Komodo's chain state", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Bind the tokens and the oracle to our gateway", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Deposit KMD into the gateway", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Exchange tokens with other tokens on-chain", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Use the tokens to withdraw KMD", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Please ensure that you have the KMD main chain downloaded and synced before continuing further in the guide.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Also, please open an empty text file and save all output transaction ids and hex-encoded data from each step. You will need the information at various stages.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "tutorial" + }, + { + "text": "Manually Compile and Install Komodo From Source", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "manually-compile-and-install-komodo-from-source" + }, + { + "text": "For this tutorial, please compile and install Komodo software from the source repositories.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "manually-compile-and-install-komodo-from-source" + }, + { + "text": "Information on manual installations can be found at this linked documentation.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "manually-compile-and-install-komodo-from-source" + }, + { + "text": "Information on manual installations can be found at this linked documentation.", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "manually-compile-and-install-komodo-from-source" + }, + { + "text": "Create a New Blockchain", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "For this tutorial we will create a temporary Smart Chain called ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "HELLOWORLD", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " for educational purposes.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Make sure that the total ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " of this Smart Chain is fairly large. ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "777777", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " coins will do for our purposes.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Follow these linked instructions", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " before continuing.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Follow these linked instructions", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Recall also that a user must have a ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " enabled when interacting with an Antara-related Smart Chain. ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "View this linked material for an explanation.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "View this linked material for an explanation.", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "If desired, the reader may use an existing Smart Chain instead of a temporary educational chain. ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Follow this link", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": " for a list of smart-chain launch parameters.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Follow this link", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-new-blockchain" + }, + { + "text": "Create a Token to Represent an External Cryptocurrency", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-token-to-represent-an-external-cryptocurrency" + }, + { + "text": "For the GatewaysCC module to function it must have access to tokens that can represent an external cryptocurrency. We use the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-token-to-represent-an-external-cryptocurrency" + }, + { + "text": "Tokens", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-token-to-represent-an-external-cryptocurrency" + }, + { + "text": " CC module to this effect.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-token-to-represent-an-external-cryptocurrency" + }, + { + "text": "Tokens", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-a-token-to-represent-an-external-cryptocurrency" + }, + { + "text": "Decide the Number of Tokens to Create", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "We want the number of total tokens to be the maximum possible amount of the represented cryptocurrency that we expect to hold.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "Each token is created not from a full coin, but rather from a satoshi.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "For example, ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": " HELLOWORLD coin creates ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "100000000", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": " tokens.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "The HELLOWORLD satoshis should pair on a one-to-one basis with KMD satoshis.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "For our purposes, we will use ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "1000", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": " coins of HELLOWORLD.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "decide-the-number-of-tokens-to-create" + }, + { + "text": "Creating the tokens", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "To create the tokens, execute the following command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "This creates a ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "100000000000", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " token supply of on-chain tokens with the name of ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": ", which represent the external cryptocurrency, ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "For more details on the above command, see ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokencreate.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokencreate.", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "This command returns a hex value as a response:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Select the hex value (", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "01000000022c223c...", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": ") and copy it (CTRL + SHFT + C).", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Broadcast this value using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "sendrawtransaction:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "sendrawtransaction:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "This returns a string, and this string is our ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " into the text editor we opened at the beginning of the tutorial and keep it available for future use.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Watch the mempool using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " to verify that the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " is successfully mined:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Once the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " disappears from the mempool the transaction is mined.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "If this Smart Chain were receiving full dPoW security services, at this point it would be appropriate to wait for notarization. We can use ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " to watch for the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "notarizations", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " property to increase:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "On this educational Smart Chain, however, we can continue without waiting for notarization.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "We can check to see that our token is successfully created on the chain using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokeninfo", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "We can check the balance of our ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": " using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenbalance:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "tokenbalance:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "creating-the-tokens" + }, + { + "text": "Create an Oracle", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "We use the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Oracles", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " Module to add external data to the blockchain.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Oracles", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The name of our oracle should be identical to the name of our tokens, ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", and the data format must start with ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Ihh", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " (height, blockhash, merkleroot):", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Create the oracle using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclescreate:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclescreate:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a hex value:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Broadcast the returned hex data using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a transaction id, which is the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oracleid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Record this in the text editor.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Before registering as an oracle publisher, we need to run the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesfund", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Send the raw transaction by broadcasting the hex value:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "(Use ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD getrawmempool", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " to ensure that the transaction receives confirmation.)", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "To prepare for the oraclefeed instance, use ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " to register as a publisher for the oracle. This must be done on a node which can post KMD block headers and which can execute withdrawal transactions:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesregister", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a hex value (not shown for brevity), which we now broadcast:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Retrieve the data publisher's ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesinfo:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesinfo:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The property, ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "\"publisher\"", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", in the entry, ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "\"registered\"", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", of the returned json object is the data publisher's ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", also called the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "publisherpubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Subscribe to the oracle using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " to receive utxo information for data publishing.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The frequency of data-publishing transactions we can perform in a block is equal to the number of active subscriptions committed to the oracle. Therefore, we must have at least one subscription for the oracle to allow publishing.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a hex value (not shown for brevity), which we now broadcast:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " methods\nseveral times and with the same amount. This gives us the opportunity to\nbroadcast more than one sample of data per block. In our example, we want to\npublish data for more than one KMD-height per block.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Verify the oracle information to ensure it is properly established:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Activating Gateway Binding", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "We now create a gateway and bind our information to it, using the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "gatewaysbind", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "gatewaysbind", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "This method requires that we decide how many total gateway signatures we desire (", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "), and how many signatures are required to withdraw funds (", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "M", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "For our educational example, we may set both ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "M", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " equal to ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ", for simplicity.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "As a part of this command we will need to indicate the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "pubtype", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "p2shtype", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "wiftype", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " values for our chosen coin. For KMD, these values are ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "60", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "85", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "188", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " respectively.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "This method returns a hex value (not shown for brevity), which we now broadcast:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "The broadcast returns a transaction id, also called the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": ". Copy this information into the text editor.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "Assuming everything is properly created and executed, we may now review our new gateway using ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "gatewaysinfo:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "gatewaysinfo:", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "Use the returned information to verify that the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "oracleid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": " match the information in our text editor.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "activating-gateway-binding" + }, + { + "text": "Assemble an Oracle Instance", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "assemble-an-oracle-instance" + }, + { + "text": "An oracle instance automates the transfer of merkleroot data to our oracle. The Komodo software suite includes built-in tools for creating an oracle instance.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "assemble-an-oracle-instance" + }, + { + "text": "Change into the correct directory (this command assumes we installed Komodo in the default directory):", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "assemble-an-oracle-instance" + }, + { + "text": "Compile the instance:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "assemble-an-oracle-instance" + }, + { + "text": "Run the instance:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "assemble-an-oracle-instance" + }, + { + "text": "Using the Gateway", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "With our gateway created and our oracle instance running as a background process, we are finally prepared to test our gateway.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "First, we need the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysDepositAddress", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ". This is the address where we will deposit our KMD on the main KMD chain.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "deposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " property contains the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysDepositAddress", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ". When we send funds to this address, we receive in return HELLOWORLD KMD tokens to an on-chain address that we indicate as follows.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method to send funds to two addresses simultaneously. The first address is the normal address for the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " that corresponds to our pubkey on the HELLOWORLD Smart Chain which will receive tokens. The second address is the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysDepositAddress", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " on the KMD chain. We send a nominal amount into the first address, and the amount we wish to have available for trading into the second address. This is done on the external chain -- in this case, KMD.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "z_sendmany", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "The returned string is the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "operation_id", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ". Use this with the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "z_getoperationstatus", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "z_getoperationstatus", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Execute this every few seconds until the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "status", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " property reads ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "success", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ". Once this occurs, find the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value. This is our ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "cointxid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ", and we copy this into our text editor.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Wait for the transaction to be mined. Once confirmed, execute the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method with the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "cointxid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " to obtain more information we will need later.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gettransaction", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Via the returned information from the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method, we can verify the addresses were correct by looking at the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " properties. At the bottom, there is a ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value. Copy the value to the text editor for later.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "In the returned results there is also a ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "blockhash", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value, which we can use to find out the height of the block which contains the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "cointtxid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " by using the method below.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Next, execute the following command for more information:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "This returns a ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "proof", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value. Transfer this to the text editor.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "We now have the necessary data to execute the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method on the HELLOWORLD Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysdeposit", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " method broadcasts the relevant data on the Smart Chain so that the gateway nodes may validate the information and prepare to distribute the KMD tokens.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Here is the information we need for this call:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "BINDTXID", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": our bindtxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "HEIGHT", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "height", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value of the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "blockhash", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " containing the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "cointxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " transaction", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "COIN", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": KMD for this example", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "COINTXID", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "cointxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " returned from ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "z_sendmany", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "CLAIMVOUT", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "vout", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " of the claim (this value should be 0, as it is our first use)", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "DEPOSITHEX", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "hex", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value that is found by executing ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gettransaction", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " on the cointxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "PROOF", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "proof", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " value returned after executing ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "gettxoutproof", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": " on the cointxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "DESTPUB", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the public key where the KMD tokens should be received on the Smart Chain (the same pubkey used earlier to retrieve the first address for the z_sendmany method)", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "AMOUNT", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ": the amount of the deposit (in this case 0.1)", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Successfully executing this command will return a hex value.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Broadcast the hex data:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "The broadcast returns a transaction id. Copy this to the text editor. It is the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "deposittxid", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "For the deposit to process successfully, the oraclefeed instance must first\nprocess the block height of the z_sendmany transaction through the oracle", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "using-the-gateway" + }, + { + "text": "Claim the Funds on the Smart Chain", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "To claim the funds we must spend the marker and the deposit asset, and perform the claim.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "This method is only available to the owner of the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "privkey", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": " corresponding to the pubkey used previously in the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": " method. The pubkey should be the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "-pubkey=$PUBKEY", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": " parameter used to launch the daemon.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "BINDTXID", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": ": our bindtxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "COIN", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": ": KMD for this example", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "DEPOSITTXID", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": ": the transaction id returned from the ", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "gatewaysdeposit", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": " call", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "DESTPUB", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": ": the public key where these tokens should be received on the Smart Chain", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "AMOUNT", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": ": the amount of the deposit (in this case 0.1)", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "Broadcast the returned hex value:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "Once this transaction is successfully confirmed, the gateway will credit tokens to our indicated pubkey. These tokens are now usable as regular Token CC tokens.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "For the claim to process successfully, the deposit and bind transaction must\nbe confirmed first. This requires either 101 confirmations, or if the chain\nhas dPoW, 1 notarization.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "claim-the-funds-on-the-smart-chain" + }, + { + "text": "Withdrawing KMD Funds", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "When finished with our tokens, we may send them to the gateway and withdraw the corresponding KMD funds via the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewayswithdraw", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": " method. Only the current owner of the KMD funds may execute the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewayswithdraw", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": " method for these funds.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewayswithdraw", + "tagName": "a", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Recall that for the gateway to function, the oracle instance must be running.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Before we execute ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewayswithdraw", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": ", we must first import the private key for the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewaysdeposit address", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": " on node which has oraclefeed instance running (this is needed only once).", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Find the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "gatewayDepositAddress", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": " in the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "deposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": " property of the returned values of the following command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Find the private key returned from this command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Execute the following commands on the node running the oraclefeed instance:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Information for the next command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "BINDTXID", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": ": our bindtxid", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "COIN", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": ": KMD for this example", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "WITHDRAWPUB", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": ": the pubkey where the withdrawn coins should appear on the external chain; in this case, the KMD pubkey", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "AMOUNT", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": ": the amount to withdraw", + "tagName": "li", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Once executed, the remaining portion of the withdrawal process should happen automatically.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Congratulations, you have successfully completed the cycle of the Gateways CC module.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "withdrawing-kmd-funds" + }, + { + "text": "Full Example", + "tagName": "h2", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "The following content provides the full terminal input and output of a complete gateway cycle.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Example Continues - From Gateway USER Node", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Make a Deposit", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Wait until this height is oraclized by the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "oraclefeed", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": " instance.", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Find the ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "height", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": " values here:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "example-continues-from-gateway-user-node" + }, + { + "text": "User Withdraws Funds", + "tagName": "h4", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "user-withdraws-funds" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/gateways-module-tutorial", + "closestElementReference": "user-withdraws-funds" + } + ], + "antara/tutorials": [ + { + "text": "Antara Tutorials", + "tagName": "h1", + "path": "antara/tutorials", + "closestElementReference": "antara-tutorials" + }, + { + "text": "This section of the documentation contains various tutorials about Antara development and setup for Smart Chains", + "tagName": "p", + "path": "antara/tutorials", + "closestElementReference": "antara-tutorials" + } + ], + "antara/tutorials/introduction-to-antara-tutorials": [ + { + "text": "Introduction to Antara Tutorials", + "tagName": "h1", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "Welcome to the Antara tutorial documentation.", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "This section contains tutorials that are specifically designed for the aspects of Komodo Smart Chain software that deal with the Antara framework.", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "The Antara framework encompasses many of the enhancements and innovations that Komodo adds to upstream technologies. Aspects of Antara include the Antara Customizations for a Smart Chain and Antara Modules, which allow for advanced blockchain functionality.", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "For tutorials regarding other Komodo software, such as ", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": ", which offers cross-chain atomic-swap compatibility, please see the respective documentation centers.", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "For a targeted learning approach to Komodo's Smart Chain software, please see the Learning Launchpad.", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "Link to Learning Launchpad", + "tagName": "p", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + }, + { + "text": "Link to Learning Launchpad", + "tagName": "a", + "path": "antara/tutorials/introduction-to-antara-tutorials", + "closestElementReference": "introduction-to-antara-tutorials" + } + ], + "antara/tutorials/musig-module-tutorial": [ + { + "text": "Musig Module Tutorial", + "tagName": "h1", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "musig-module-tutorial" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "MuSig is currently only available on MacOS and Linux operating systems.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Please check with the Komodo team on ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": " for information regarding Windows functionality.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Install Dependencies", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "install-dependencies" + }, + { + "text": "Ensure that local repositories are up to date:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "install-dependencies" + }, + { + "text": "Install Dependencies:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "install-dependencies" + }, + { + "text": "Build instructions", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "build-instructions" + }, + { + "text": "Build ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "build-instructions" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "build-instructions" + }, + { + "text": " by executing the following series of commands. Each line should be executed separately:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "build-instructions" + }, + { + "text": "Compile the appropriate library:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "build-instructions" + }, + { + "text": "Update", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "update" + }, + { + "text": "Update the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "update" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "update" + }, + { + "text": " daemon by executing the following series of commands. Each line should be executed separately:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "update" + }, + { + "text": "Launch the Smart Chain", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "launch-the-smart-chain" + }, + { + "text": "Change into the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "launch-the-smart-chain" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "launch-the-smart-chain" + }, + { + "text": " directory:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "launch-the-smart-chain" + }, + { + "text": "Launch the MuSig Smart Chain using the following launch parameters.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "launch-the-smart-chain" + }, + { + "text": "Obtain a Pubkey", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Without a pubkey, the MuSig Smart Chain will not function properly on the user's local machine. Follow these instruction for obtaining and setting a pubkey:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Instructions for obtaining and setting a pubkey", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Instructions for obtaining and setting a pubkey", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Once the Smart Chain is relaunched with the new pubkey included as a launch parameter, the MuSig Smart Chain is prepared for use.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Acquire Funds for Testing", + "tagName": "h3", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "The reader should launch the Smart Chain with a pubkey whose private key is already imported to the wallet. If this is not the case, restart the Smart Chain with an appropriate pubkey, or use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "importprivkey", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " method to import the private key of the desired pubkey.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "importprivkey", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "The MuSig Smart Chain has an available faucet. The faucet allows a user to obtain a nominal amount of funds for testing and orientation purposes.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Ensure that the terminal's working directory is in the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " directory:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "This method returns a hex value in the terminal. Select the entire hex value and copy it to the clipboard. (Use ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "CTRL + SHFT + C", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " to copy within the terminal)", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Broadcast the hex value using the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Wait for the transaction to be confirmed.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Once the broadcast transaction is confirmed, check the balance using the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "There should be a small amount of funds in the balance.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "acquire-funds-for-testing" + }, + { + "text": "Full Example", + "tagName": "h2", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "The aim of this example is to create a ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "20f2", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": " MuSig pubkey, fund it, and spend from it.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "To accomplish this, two nodes are necessary.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "In this MuSig example we use the following pubkeys on our two nodes:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Node1's daemon is launched using the pubkey: ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "0225f1cbbda1a0c406bb8f6dc7a589d88b2f9e28cd4fdb3f59139f8aff1f5d270a", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Node2's daemon is launched using the pubkey: ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "02d3431950c2f0f9654217b6ce3d44468d3a9ca7255741767fdeee7c5ec6b47567", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": " for the MuSig module is ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "18", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "For this example, we use ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "the normal array formatting for cclib methods", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": ", as we are not creating a bash script.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "the normal array formatting for cclib methods", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Steps 1 through 5 and 11 through 12 need to be executed only on the first node.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "full-example" + }, + { + "text": "Step 1: combine", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "combine", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": " method to create a ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": " address:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "combine", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "Copy the values of ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "pkhash", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": " and save them in a secure location for later use.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-1-combine" + }, + { + "text": "Step 2: send", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "send", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": " method to send ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": " coin to the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "combined_pk", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": " address:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "send", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": " value to your clipboard.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-2-send" + }, + { + "text": "Step 3: Broadcast the hex Value and Retrieve the sendtxid", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": " method to broadcast the raw hex value:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "The returned value is our ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": ". Copy this to a secure location for later use.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-3-broadcast-the-hex-value-and-retrieve-the-sendtxid" + }, + { + "text": "Step 4: Obtain the change_script Value", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " method to decode the raw transaction.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "getrawtransaction", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "In the response there are a series of ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " values, each of which has an array of json objects. Search for the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " value that has the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "\"type\":\"pubkey\"", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " key pair listed. In this object, retrieve the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " value from the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "scriptPubkey", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "This ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " is our ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "change_script", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": " value. Save this to a secure location for later use.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-4-obtain-the-change-script-value" + }, + { + "text": "Step 5: calcmsg", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "calcmsg", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " method to calculate the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " value. The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "calcmsg", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " method needs the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "sendtxid", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "change_script", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " values retrieved from previous commands.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "cclib calcmsg 18 '[\"insert_sendtxid_here\",\"insert_change_script_here\"]'", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "msg", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": " value to a secure location for later use.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-5-calcmsg" + }, + { + "text": "Step 6: session", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-6-session" + }, + { + "text": "From this point forward, all steps should be executed on both nodes 1 and 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-6-session" + }, + { + "text": "After each step performed on each node, copy the relevant data to the opposing node.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-6-session" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "The following ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "session", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": " command requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "ind", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": ": the index of the signatory in the set. In this example our current node, Node 1, is ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "0", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "numsigners", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": ": the number of pubkeys participating in the multi-signature transaction", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": " address, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": " to be signed, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "Copy the value of ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": " both to a secure location and to Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "Execute the same command as before, only change the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": " value from ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": " to indicate Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "commitment", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": " value both to a secure location and to Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2" + }, + { + "text": "Step 7: commit", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-7-commit" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "commit", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": " method requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "ind", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": ": the index of the opposite node. In our example, Node 2 is ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "1", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "commitment", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": " value from the opposing node", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": " value both to a secure location and to Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-2" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "Execute the same command as before, only change the value of ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": " to indicate Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": " value both to a secure location and to Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-2" + }, + { + "text": "Step 8: nonce", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-8-nonce" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": " method requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "ind", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": ": the index of the opposing node. In our example, the index of Node 2 is ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "1", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": ".", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "nonce", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "nonce", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": " from the opposing node", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": " value both to a secure location and to Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-3" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "Execute the same command, only change the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": " value to ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": " to indicate Node 1, and change the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "nonce", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": " to the value retrieved from Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": " value both to a secure location and to Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-3" + }, + { + "text": "Step 9: partialsig", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-9-partialsig" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": " method requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "pkhash", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "ind", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": ": the index of the opposing node. In our example, the index of Node 2 is ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "1", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "partialsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "partialsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": " retrieved from the opposing node", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": " value both to a secure location and to Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-4" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "Execute the same command, but change the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "ind", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " value to ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " to indicate Node 1, and change the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "partialsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " to the value retrieved from Node 1 previously.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " value to a secure location.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "If the values of ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " produced by both nodes is the same, then you have followed the example without any errors to this point. Visually verify that this ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " value matches with the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "combinedsig", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": " value returned on Node 1.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-4" + }, + { + "text": "Step 10: verify", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-10-verify" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "verify", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": " method requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "msg", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "combined_pk", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-5" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": "Execute the same command on Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": "The response from both nodes should display a ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": "\"result\": \"success\"", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": " key pair. If this is not the case, you made an error in a previous step.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-5" + }, + { + "text": "Step 11: spend", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-11-spend" + }, + { + "text": "Currently, each node will output different raw transaction values, as both\nnodes are attempting to spend funds to their own wallets. Of the two, the node\nthat broadcasts its returned raw transaction value first will receive the\ncoins. The other node does not need to create or broadcast a transaction\nvalue.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-11-spend" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "We are now prepared to execute the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": " method requires an array of arguments. The arguments are as follows:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "sendtxid", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "sendtxid", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": ", retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "change_script", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "change_script", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": ": the ", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "combinedsig", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": " value, retrieved previously", + "tagName": "li", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": " value to a secure location.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-6" + }, + { + "text": "Node 2", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-6" + }, + { + "text": "In this example, our desire is to receive the transferred coins on Node 1, not on Node 2.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-6" + }, + { + "text": "Therefore, it is not necessary to execute the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-6" + }, + { + "text": "spend", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-6" + }, + { + "text": " method again, nor is it necessary for Node 2 to execute the following step.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-2-6" + }, + { + "text": "Step 12: sendrawtransaction", + "tagName": "h4", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "step-12-sendrawtransaction" + }, + { + "text": "Node 1", + "tagName": "h5", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "Broadcast the ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": " value using ", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": ":", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "Once the broadcast transaction is mined and notarized, the MuSig transaction is complete.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + }, + { + "text": "You have now successfully executed a full cycle of the MuSig module.", + "tagName": "p", + "path": "antara/tutorials/musig-module-tutorial", + "closestElementReference": "node-1-7" + } + ], + "antara/tutorials/overview-of-antara-modules-part-i": [ + { + "text": "Overview of Antara Modules - Part I", + "tagName": "h1", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "overview-of-antara-modules-part-i" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Welcome to an ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Overview of Antara Modules - Part I.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Part I of this discussion covers the basic aspects of Antara modules, without delving deeply into the technical aspects of the technology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "The conversation should be attainable for a normal developer in the Komodo ecosystem, as well as for non-developers who otherwise possess experience in the blockchain industry.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "A later discussion, ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Overview of Antara Modules - Part II", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": ", covers additional conceptual aspects of this technology. Part II is recommended for anyone who intends to utilize Antara technology in a development environment.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Overview of Antara Modules - Part II", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introduction" + }, + { + "text": "Smart Contracts on the Komodo Platform", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "Komodo is built on the Bitcoin protocol, which features a simple programming language, called Bitcoin Script, that allows a developer to perform rudimentary scripting tasks.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "Traditionally, Bitcoin Script is considered to be incapable of supporting the complex \"smart contracts\" found on other blockchain platforms. This limitation is mostly from the fact that Bitcoin Script is (intentionally) not Turing complete.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "Now, the capabilities of extending Bitcoin Script into a competitive, and arguably stronger, method for creating smart-contract-like modules is changing through Komodo's Antara Framework. This framework integrates a broader technology, called CryptoConditions, which allows for complex utxo-based logic.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "As is often the case, Komodo Platform is leading the blockchain industry in this brand new technology. This section will explain Antara's implementation of CryptoConditions, how it works, and how utxo-based smart contracts will dramatically alter the blockchain landscape.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "A Brief Review of Bitcoin Script", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-brief-review-of-bitcoin-script" + }, + { + "text": "The very first block in the Bitcoin blockchain was mined on or around January 3, 2009. Since then, this revolutionary technology has exploded, forever changing the way we think of money and currency. We owe many of these developments to Satoshi Nakamoto and his original Bitcoin-core code.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-brief-review-of-bitcoin-script" + }, + { + "text": "The Bitcoin-core code itself is written in C++. A time-tested and well-known programming language, C++ is Turing complete and can therefore do all that any other Turing complete programming language can do.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-brief-review-of-bitcoin-script" + }, + { + "text": "However, Bitcoin transactions are not executed with C++. Instead, transactions are carried out with a special protocol called Bitcoin Script. This scripting language has a number of \"opcodes\", or commands, that tell nodes how to deal with any specific transaction request.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-brief-review-of-bitcoin-script" + }, + { + "text": "While most computer programming languages are considered Turing complete, Bitcoin Script is not. It’s widely accepted that this was an intentional decision. But before we can discuss the relative merits of making a programming language Turing complete, let’s take a moment to understand what exactly \"Turing complete\" means.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-brief-review-of-bitcoin-script" + }, + { + "text": "Turing Completeness", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "In 1936, a British computer scientist and mathematician named Alan Turing published an academic paper called “On Computable Numbers, with an Application to the Entscheidungsproblem.” It is a seminal essay in the fields of computer science and computational theory.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "In the essay, Turing describes a hypothetical machine that, when granted a few basic assumptions, can theoretically “compute any computable sequence.” This basically means it can solve any mathematical problem that uses only computable numbers. According to Turing’s definition, “a number is computable if its decimal can be written down by a machine.”", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "Turing called this device a “universal machine” but it is now better known as a “Turing machine.”", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "Turing machines are generally described in this way: Imagine a simple device that can read and write numbers. This device also has the ability to store data. (Turing assumes that the device has an infinitely large storage capacity, but this is not essential to understanding the concept of Turing completeness.)", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "Now, imagine that this simple machine moves from left to right along a thin, infinitely long piece of tape. It reads a number, decides what to do based on a series of instructions to which it is bound, and then executes the instructions accordingly.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "In simply reading numbers, executing commands, and writing numbers, this simple machine can solve any computational sequence. It may take an arbitrarily long period of time but, theoretically, the machine would eventually solve the problem.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "So what does all of this actually mean? Why is it important?", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "The idea of something being “Turing complete” is derived from this idea of a Turing machine. While we know that no machine has an infinitely large memory, we can use the basic theoretical framework to decide whether or not a machine can solve any computable sequence.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "It is in this sense that computer languages are said to be Turing complete. A language is Turing complete if it can solve any mathematical problem made up of computable numbers.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "As we noted above, Bitcoin Script is not Turing complete. This means that there are some problems and sequences that Bitcoin Script is not capable of solving.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "turing-completeness" + }, + { + "text": "Gas-based Smart Contract Platforms", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "This is where the gas-based smart contract platforms of Ethereum, EOS, NEO, and many other blockchain platforms enter the picture. We will focus on Ethereum, as it is the originator of this model, and it is currently the most popular.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "In December 2013, Vitalik Buterin released ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "Ethereum’s first white paper.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": " One of the major contributions Ethereum offered was a Turing complete programming language, called Solidity, that can be used to write smart contracts.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "Ethereum’s first white paper.", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "In fact, Buterin makes this perfectly clear on the first page of the white paper:", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "“What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create 'contracts' that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.”", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "In many ways, Ethereum's 'smart-contract' language is an improvement over Bitcoin Script. It allows “systems which automatically move digital assets according to arbitrary pre-specified rules”, and this opened up a new world of possibilities for blockchain technology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "At the same time, Turing completeness creates a few vulnerabilities. Let’s discuss.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-based-smart-contract-platforms" + }, + { + "text": "Pros and Cons of Turing Completeness", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "Any Turing complete programming language has the ability to create “loops.” A loop just means that a certain operation or set of commands can be written once but commanded to execute an arbitrary number of times.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "In a language that is not Turing complete, like Bitcoin Script, loops are not available. A programmer needs to copy and paste the same piece of code ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "X", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": " number of times when he wants a computer to execute the operation ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "X", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": " times.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "While loops are beneficial in some ways, they also present vulnerabilities. A programmer may accidentally write an infinite loop into a smart contract, unnecessarily burdening the network with an infinite number of meaningless operations to perform.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "If malicious spammers want to attack an unprepared network that runs on a Turing-complete language, they can unleash a great number of smart contracts each bearing infinite loops. These pointless, endless operations can cause crippling congestion.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "To avoid this possibility, Buterin introduced the idea of “gas” to the Ethereum network.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "pros-and-cons-of-turing-completeness" + }, + { + "text": "Gas: A Way to Avoid Infinite Loops", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-a-way-to-avoid-infinite-loops" + }, + { + "text": "In short, users must pay a fee for every single operation that they want the network’s nodes to perform. These fees are simply called “gas.” Gas prices discourage malicious actors from spamming the network. It also encourages developers to write efficient contracts that require as few processes as possible.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-a-way-to-avoid-infinite-loops" + }, + { + "text": "Moreover, gas prevents an accidental infinite loop from wreaking havoc on the network, because once all the gas is used up, the network stops processing the contract. The loop runs out of gas and the nodes stop executing the loop.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-a-way-to-avoid-infinite-loops" + }, + { + "text": "An important benefit the gas-based platform brought to the world is that it broke the barrier for allowing developers to decentralize software execution in a p2p environment.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-a-way-to-avoid-infinite-loops" + }, + { + "text": "For example, in a non-decentralized p2p software application, users typically must rely on a centralized server or other impersonal third-party to maintain sanity in the execution of software instructions. Decentralized applications allow users to interact with software while relying not on a centralized server, but on the decentralized blockchain.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "gas-a-way-to-avoid-infinite-loops" + }, + { + "text": "The Problem with the Gas-based Model", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "While the concept of gas is a clever innovation, it also makes complex applications prohibitively expensive, and it hinders innovation and audience growth.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "If a particular contract or dApp needs the network to perform a large number of operations to function as designed, it costs too much money to keep it running.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Take these two competing statements from Buterin by way of illustration. In January of 2014 he said, “...Our goal is to provide a platform for decentralized applications – an android of the cryptocurrency world, where all efforts can share a common set of APIs, trustless interactions and no compromises.” ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "But later, in July 2018, Buterin had this to say:", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": " “If you want to build a decentralized Uber and Lyft on top of an unscalable Ethereum, you are screwed. Full stop.”", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "But later, in July 2018, Buterin had this to say:", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "The \"Uber\" reference is to a popular phone app where users can hail and share a freelance-taxi service. On average, this app processes 12 financial transactions per second. At the time of Buterin's statement, Ethereum can process 15 transactions per second. Let's make a rough analysis of the cost to maintain this one dApp on Ethereum.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "The value of the gas fees for an Uber-like decentralized app would have to cover ~80% of the cost of maintaining the Ethereum blockchain (", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "(12 txs / 15 txs) * 100 = 80%", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "). Today (cr. 2018-2019), it costs about ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "$150,000 USD per hour", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": " to maintain the Ethereum hash rate. The dApp developer and their end-users would be responsible for 80% of this, so they would have to pay gas fees of at least $120,000 per hour, which translates to ~$30 per second.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "$150,000 USD per hour", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Therefore, looking only at the costs, and not at the lack of space for multiple dApps, we begin to see the enormous flaws of the gas-based model. While existing large corporations and their customer bases may be able to afford this financial burn rate, it is difficult to conceive of a startup that can afford it. The ongoing gas fees to continually maintain the functionality of this dApp are simply too expensive.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "All this is assuming that the dApp only processes one transaction per ride, per customer. If the dApp is instead a game that has a looping function, the gas fees can grow even more absurd.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Furthermore, all dApps on the Ethereum platform have to share the same gas, and the same blockchain, and this compounds the problem. If an existing business running a dApp on the platform becomes suddenly popular, the surge of people wanting to use the dApp must purchase gas, and this causes the price of gas to rapidly rise. The burst of activity can also cause the blockchain to grind to a halt.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "While the spike in the price of gas can be advantageous for financial speculation, the spike is arguably terrible for many necessary blockchain use cases. For example, a startup business that wants to serve a new customer base using the same gas-based platform must now convince their potential customers to purchase the platform's gas at an unpredictably high price.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Until blockchain technology is capable of processing potentially billions, if not trillions, of transactions per second on a single blockchain, the gas-based blockchain platform is fundamentally flawed for today's market. The more popular a gas-based platform becomes, the more difficult, expensive, and prohibitive it is for businesses to develop on it, and for users to buy into it.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Having observed crucial flaws in the currently popular gas-based smart-contract platform, we are now prepared to turn to the smart-contract solution Komodo proposes.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "the-problem-with-the-gas-based-model" + }, + { + "text": "Introducing Antara Modules", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "Recall that Satoshi Nakamoto's Bitcoin Script is not Turing complete. This choice was deliberate. Leaving Bitcoin Script in a simple form was a quicker, safer alternative to a Turing complete language. This is true because it removes the possibility of infinite loops clogging the Bitcoin network.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "However, at the same time, the lack of Turing completeness also prevented smart-contract like functionality on Bitcoin-protocol based blockchains — until now.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "Komodo now offers Antara Modules. These modules allow for the same functionalities found in smart contracts, and even more advanced features. This new technology is compatible with Bitcoin-protocol based blockchains, and this includes all Komodo Smart Chains.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "Furthermore, Antara Modules gain more usefulness when combined with Komodo's unique design. Recall that Komodo is built not to require all developers and users to function on the main Komodo blockchain. Rather, Komodo empowers developers with their own independent blockchain, each secured with the hash rate of Bitcoin. This facilitates an interconnected network between all Smart Chains through Komodo's other technologies, such as atomic-swaps, cross-chain syncing, and more.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "This combination of Komodo technologies overcomes the challenges of the currently popular, gas-based, single-blockchain platforms.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "With Antara Modules, the developer can maintain interactivity with the Komodo ecosystem, while also being able to run on a private blockchain. Because the developer has the full blockchain all to themselves, they are able to safely occupy the full transaction capacity without fear of interruption by activity elsewhere in the ecosystem. Developers of highly active blockchains can even split their single blockchain into multiple blockchains, using the Antara framework.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "Likewise, end-users of a blockchain service in the Komodo ecosystem need only purchase the currency of the developer's Smart Chain; there is no need to purchase KMD. Therefore, for the end-user, the price of participating in the developer's business is tied only to the design and success of the developer's blockchain software, and not to the unpredictability of the ecosystem at large.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "In short, if you want to use blockchain technology to compete with the Uber taxi app, Komodo is the platform for you.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "introducing-antara-modules" + }, + { + "text": "Antara Modules are Based on Utxo Technology", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "Antara Modules function in a completely different manner from the popular gas-based model of other platforms. Before we can explain how Antara Modules work, we must first briefly explain the concept of an \"unspent transaction\", also called a \"utxo,\" for short. Utxos are integral to a blockchain's functionality, but many users do not know they exist.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "A utxo is simply a bill of value sitting in your digital wallet — much like the many small fiat dollar bills you may have sitting in your physical wallet. The collection of utxos in your digital wallet make up the total balance.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "For example, a user could have in their digital wallet a utxo worth 1 KMD, another utxo worth 2 KMD, and another worth 7 KMD. Altogether, in the software interface the user would see that they have 10 KMD total. Most users would never know that they actually have three separate utxos that make up the full balance, as utxos are typically managed automatically by blockchain software.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "When the user spends money, the blockchain software automatically splits the money they spend into new utxos. If our user desires to spend 6 KMD, the software splits the 7 KMD utxo into two pieces: a 6 KMD utxo is sent to the destination address, as the user instructed, and the remaining 1 KMD is returned to the user as \"change.\"", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "The user now has a 1 KMD utxo, a 2 KMD utxo, and another 1 KMD utxo. The total that they see in their wallet is 4 KMD.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-are-based-on-utxo-technology" + }, + { + "text": "Antara Modules: Utxo-based Smart Contracts", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "Coming to this from a programmer's perspective, a utxo is a programmable object. As with many objects, it allows software to add and subtract properties from it, including properties that allow for Turing-complete programming. In Komodo, utxos allow us to create a smart-contract functionality that is dramatically cheaper to utilize, and more secure in practice; than the gas-based models of other platforms.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "In its simplest form, an Antara Module locks a utxo in a publicly-known address and prevents it from being spent until a certain set of conditions are met. Once the conditions are fulfilled, the utxo is unlocked and sent to the appropriate address. The idea behind it really is that simple.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "It is fundamentally different than the gas-based model. In the gas-based model, a user has a total balance and they instruct their blockchain software to execute a smart-contract either until the contract is complete, or their total balance is gone.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "With Komodo's Antara Modules, a user locks a series of utxos in a contract with a set of instructions that must be met before the utxo can be sent to its final destination.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "This is a dramatically more secure setup. Only the utxos that have been indicated as belonging to an instance of an Antara Module can be spent. This is different from the gas-based model, where a bug in the software can (and frequently does) allow a faulty smart contract to drain the full balance of a wallet.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "Before diving any deeper into Antara Modules, we need to understand a few things about Bitcoin Scripts.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-utxo-based-smart-contracts" + }, + { + "text": "How Antara Modules Interact with Bitcoin Script", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "how-antara-modules-interact-with-bitcoin-script" + }, + { + "text": "There are several different ways to execute a Bitcoin payment. In particular, there are pay-to-pubkey payments, pay-to-pubkey-hash payments, and pay-to-script-hash payments. These three payment types represent the overwhelming majority of Bitcoin transactions, and each type of payment is limited in the possibilities it allows to the user and the developer.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "how-antara-modules-interact-with-bitcoin-script" + }, + { + "text": "Now, Komodo has implemented an additional type of payment script that designates a utxo as belonging to a specific instance of an Antara Module. In other words, this new payment script puts constraints on the utxo. The name of this new script is called a \"CryptoCondition,\" and we explore the specifications of this script in later articles.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "how-antara-modules-interact-with-bitcoin-script" + }, + { + "text": "Antara Modules Maintain Scarcity Within the Module", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-maintain-scarcity-within-the-module" + }, + { + "text": "Every Antara Module has its own unique code, called an \"EVAL\" code, and this keeps funds in one module separate from another, and separate from the main Smart Chain's coins.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-maintain-scarcity-within-the-module" + }, + { + "text": "When a user spends funds in a manner that links a utxo with an Antara Module, the utxo is locked to this EVAL code in the utxo-data structure.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-maintain-scarcity-within-the-module" + }, + { + "text": "This keeps the utxo associated with the Antara Module, and thus the utxo is not free to enter into another Antara Module unless the current module allows this behavior.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "antara-modules-maintain-scarcity-within-the-module" + }, + { + "text": "A User Has a Unique Address for Each Antara Module", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-user-has-a-unique-address-for-each-antara-module" + }, + { + "text": "For each Antara Module, the user has a unique address that can only be used with funds created as a part of this module. This keeps funds that are created within an Antara Module separate from funds that are created in other Antara Modules. In this manner, there is never any confusion about where funds are sent.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "a-user-has-a-unique-address-for-each-antara-module" + }, + { + "text": "Each Module Has a Global Address", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "each-module-has-a-global-address" + }, + { + "text": "Each Antara Module also has a global address that is known and usable by everyone. Even the private key to this address is public.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "each-module-has-a-global-address" + }, + { + "text": "Making the private key public allows users to interact with the module using lite-mode software (i.e. syncing the blockchain is not required). Also, the global address serves as a repository of information for all users within the module.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "each-module-has-a-global-address" + }, + { + "text": "The global address allows all users to query the state of the module and discover current and past behavior.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "each-module-has-a-global-address" + }, + { + "text": "Developers Set the Rules for Each Module-Related Transaction", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "developers-set-the-rules-for-each-module-related-transaction" + }, + { + "text": "At the same time, the funds within this module cannot be moved until all the conditions of the module are satisfied.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "developers-set-the-rules-for-each-module-related-transaction" + }, + { + "text": "For example, the module can require that funds only be spent to a specific and approved address, as set in advance by a group of collaborating users. This is similar to the Bitcoin Lightning Network's intended effect, yet dramatically simpler in design.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "developers-set-the-rules-for-each-module-related-transaction" + }, + { + "text": "With these rules in place, an Antara Module effectively becomes a miniature consensus mechanism. The module forces consensus for its participants, just like the master consensus mechanism of the Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "developers-set-the-rules-for-each-module-related-transaction" + }, + { + "text": "Now let's take a closer look at the many advantages of Antara Modules.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "developers-set-the-rules-for-each-module-related-transaction" + }, + { + "text": "Advantages Of Antara Modules", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "advantages-of-antara-modules" + }, + { + "text": "Access to Established and Turing Complete Languages", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "access-to-established-and-turing-complete-languages" + }, + { + "text": "Antara Modules are hard-coded into the Komodo code base, which means they can be written in C and C++. They can also be written in any compiled programming language that can create a linkable library capable of calling and being called by C/C++ functions. In that sense, Komodo’s utxo-based contracts are language agnostic.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "access-to-established-and-turing-complete-languages" + }, + { + "text": "The C and C++ programming languages are widely understood, time-tested, and, perhaps most importantly, Turing complete. Thus, utxo-based smart contracts can be programmed to do anything that any other existing program or application is able to do.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "access-to-established-and-turing-complete-languages" + }, + { + "text": "No Need for a Virtual Machine", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "no-need-for-a-virtual-machine" + }, + { + "text": "Because Antara Modules on Komodo run in the daemon, developers can avoid the limitations and hassles of having to run code in a virtual machine, as is the case with the many gas-based smart contract platforms. On Komodo, you have far more speed, flexibility, and power. This is made possible by our unique design of connecting independent blockchains together, rather than forcing all users to run on a layer-one main chain.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "no-need-for-a-virtual-machine" + }, + { + "text": "Utxos are More Secure Than Balance-Based Programming", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "utxos-are-more-secure-than-balance-based-programming" + }, + { + "text": "Utxo-based modules are more secure than balance-based smart contracts. This is true in several ways. For example, because Komodo’s modules are utxo-based, it is far more difficult, if not impossible, to use a module to flood the main chain's coin supply with illegitimate coins.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "utxos-are-more-secure-than-balance-based-programming" + }, + { + "text": "This is not the case with balance-based smart contracts. Because the smart contracts are linked to balances, rather than blockchain-enforced utxos, a malicious actor can manipulate balances to disastrous ends. We have seen this happen again and again and again.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "utxos-are-more-secure-than-balance-based-programming" + }, + { + "text": "RPCs Make Module Consumption Easy", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "rpcs-make-module-consumption-easy" + }, + { + "text": "Utxo-based smart contracts are also essentially an extension of the Bitcoin protocol, so a series of Remote Procedure Calls (RPCs) can be established. With an RPC, a normal developer can bring the functionality of an existing Antara Module into a foreign software environment with a simple command.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "rpcs-make-module-consumption-easy" + }, + { + "text": "With many Antara Modules, a Graphic User Interface (GUI) can allow non-technical users to make use of the technology without needing to work through the command line. Eventually, once a large variety of RPC calls are available, a normal developer should be able to build decentralized software using RPC calls alone.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "rpcs-make-module-consumption-easy" + }, + { + "text": "Instantaneous Confirmation", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "instantaneous-confirmation" + }, + { + "text": "A challenge that many developers face in the blockchain industry is the aspect of creating software that must wait for decentralized consensus before the software's users can assume finality.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "instantaneous-confirmation" + }, + { + "text": "Antara Modules allow the developer to overcome this challenge. Antara Modules allow for zero-confirmation micro-payments. These micro-payments are secured by Komodo’s delayed Proof of Work security mechanism. The payments are fully peer-to-peer, and are considered confirmed as soon as they are initiated.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "instantaneous-confirmation" + }, + { + "text": "No Need for Gas", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "no-need-for-gas" + }, + { + "text": "Antara Modules do not require a shared “gas” coin for every process executed. Recall that the smart contracts and dApps built on Ethereum must pay in Ethereum's ecosystem-wide gas (Ether) for every single step of progress. The tremendous expense placed on common users and developers makes complex blockchain-based software nigh impossible.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "no-need-for-gas" + }, + { + "text": "Komodo, on the other hand, is far more scalable as the cost of blockchain processing is tied only to an individual Smart Chain's native coin, and not to the main Komodo coin (KMD) that ties the ecosystem together.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "no-need-for-gas" + }, + { + "text": "Difficult to Create, but Easy to Reuse", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "Creating a new Antara Module is more difficult than creating a new smart contract on a gas-based platform. However, the functionality of a module need only be programmed once, and then other users in the Komodo ecosystem can reuse the finished module.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "Building and designing a new Antara Module requires a strong proficiency in blockchain technology and in advanced programming techniques. The module must be stable and secure enough to withstand the pressure of the wild-open Internet.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "However, once created, other users may rely on the module's RPC commands to utilize the module's functionality without having to understand how the module functions.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "For example, consider how the MuSig Antara Module serves non-blockchain developers. This module relies on Antara to enable a complicated technology called Schnorr Signatures, which are a new method for creating multi-signature blockchain transactions. The RPC's for this module allow any developer of essentially any skill level to adopt the MuSig functionality into the developer's software without having to gain an in-depth understanding of Schnorr technology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "See the MuSig module documentation here", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "See the MuSig module documentation here", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "As the library of available modules grows, so too do the advantages to the many types of developers in the Komodo ecosystem. For this reason, members of the Komodo community express gratitude to the more experienced blockchain developers who build and share Antara Modules via open-source ideology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "difficult-to-create-but-easy-to-reuse" + }, + { + "text": "Komodo is Developing and Testing Default Modules", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "The Komodo team has already created many Antara Modules that are freely available for all developers in the Komodo ecosystem. The team is also exhaustively testing the Antara Modules' code prior to implementation, to ensure a quality and bug-free environment.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "Once complete, the modules are embedded into the default source code of a Komodo Smart Chain. This technology is provided using open-source philosophy, and thus anyone can verify the code of the modules.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "If you would like to have an Antara Module available that is not already in the code base, submit a Pull Request to the Komodo repository on Github with the details of your desired module. If accepted, Komodo will write the module and make it available to all users during our next hard fork. This occurs on an annual or semi-annual basis.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "To our knowledge, no other blockchain project has successfully implemented utxo-based contracts on a live chain. Considering atomic swaps, on-demand scalability, cross-chain interoperability syncing, and utxo-based modules, the Komodo team continues to develop technologies at the bleeding edge of the blockchain industry.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "Join us for Part II of this discussion. Part II delves a little deeper into the methods of Antara Module functionality, and continues preparing the developer for Antara Module utilization.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "Link to Part II of an Overview of Antara Modules", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + }, + { + "text": "Link to Part II of an Overview of Antara Modules", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-i", + "closestElementReference": "komodo-is-developing-and-testing-default-modules" + } + ], + "antara/tutorials/overview-of-antara-modules-part-ii": [ + { + "text": "Overview of Antara Modules - Part II", + "tagName": "h1", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "overview-of-antara-modules-part-ii" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "introduction" + }, + { + "text": "Welcome to an ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "introduction" + }, + { + "text": "Overview of Antara Modules - Part II.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "introduction" + }, + { + "text": "The following content is provided for developers desiring to discover deeper levels of potential in Komodo software. The content covers technical aspects of Antara Modules that are not necessary for a common user to understand. Learning this content can help any developer in the Komodo ecosystem utilize or create new Antara Modules.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "introduction" + }, + { + "text": "Assumptions for this Content", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "This discussion is intended for developers who feel confident in at least one mainstream programming language, and who understand the core concepts of blockchain and Komodo technology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Other readers, such as business or marketing developers, may also find the content useful, although some topics may be difficult to understand. We invite any interested reader to reach out to our team on ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": " with questions.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Consider reading the following resources, if necessary.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Overview of Antara Modules - Part I", + "tagName": "li", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Overview of Antara Modules - Part I", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Core Technology Discussions", + "tagName": "li", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Core Technology Discussions", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Mastering Bitcoin", + "tagName": "li", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Mastering Bitcoin", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "assumptions-for-this-content" + }, + { + "text": "Before We Begin: A Brief Note for Normal Developers", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "Creating a new Antara Module is challenging. Fortunately, not every developer in the Komodo ecosystem is expected to program new modules from scratch. Rather, Komodo anticipates that many developers will consume existing modules without attempting to create new modules.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "Each module built on the Antara framework can be designed to have Remote Procedure Calls (RPC's) that can be called quickly and easily from other software and programming languages.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "A good example can be seen in the MuSig module. This module uses the Antara framework to enable a complicated and useful technology called Schnorr Signatures. The RPC's for this module allow any developer of essentially any skill level to adopt MuSig functionality into their software without having to gain an in-depth understanding of Schnorr technology.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "See the MuSig module documentation here", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "See the MuSig module documentation here", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "As the library of available modules grows, so too do the advantages to the many types of developers in the Komodo ecosystem.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "before-we-begin-a-brief-note-for-normal-developers" + }, + { + "text": "Understanding the Problem that Antara Modules Solve", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "understanding-the-problem-that-antara-modules-solve" + }, + { + "text": "Antara is Komodo's technology framework that developers use while creating decentralized software. Antara Modules are but one aspect of the wider Antara framework. The modules are a crucial element of the framework, as they allow any capable developer to directly add arbitrary code into the Smart Chain itself.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "understanding-the-problem-that-antara-modules-solve" + }, + { + "text": "The reader may better understand the purpose and use case of Antara Modules by first understanding the key problem that they solve.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "understanding-the-problem-that-antara-modules-solve" + }, + { + "text": "A Consensus Mechanism Is Not Easy to Create or Change", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "Adding new code into a blockchain's consensus mechanism (CM) is a challenging task. Creating an entirely new CM is more difficult by an order of magnitude. Yet, despite these facts, often when an experienced developer first approaches blockchain technology with creative intent, their initial impulse is to dive directly into the CM itself. As time passes, the developer can come to a realization that they are attempting to solve a problem that is too large for any one person.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "Consider the Bitcoin consensus mechanism. This protocol is approximately ten years old and receives perhaps more attention than all other blockchain protocols combined. Every year, thousands upon thousands of the world's most intelligent developers, mathematicians, and cryptographers pore over the intricacies of this profitable technology. Yet, despite this valuable insight, mistakes in the code continue to reveal themselves: in 2018, the Bitcoin Core and Bitcoin Cash teams together ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "discovered a flaw in the code", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": " that would have allowed a malicious user to print an arbitrary number of new Bitcoins.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "discovered a flaw in the code", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "Mistakes in the code of a CM can cause economic instability, and volatility of this nature can wreak havoc on the lives of the CM's users. For this reason, seasoned blockchain engineers often avoid changing the CM altogether, once it is relatively stable.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "For those few projects that create a useful and unique consensus mechanism, a new challenge immediately presents itself. If the CM relies on a Proof of Work type model, the project team must attract a sufficient number of miners. If the CM is more akin to Proof of Stake, the team must ensure the blockchain's total stake is distributed in a manner that ensures trustlessness. Neither of these tasks are easy to achieve.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "In light of these challenges, the blockchain engineer finds themselves confronted with a paradox. The engineer desires to create something new, and at the same time, they cannot easily change the core software.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-consensus-mechanism-is-not-easy-to-create-or-change" + }, + { + "text": "A Popular, But Flawed Solution: The Decentralized Virtual Machine", + "tagName": "h4", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "A popular solution to this paradox is to associate the consensus mechanism (CM) with a virtual machine (VM). This method was made popular by the Ethereum project.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "In this model, the CM's design can be similar to existing and stable CM's, but it has one difference. The CM listens to instructions given by an external VM that is decentralized across all validating nodes. While code inside the VM can be arbitrary, the CM does not listen to the code's execution. Instead, the CM only listens to the same data as before: the history of transactions and associated meta data.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "This solution is more effective than writing an entirely new CM, yet the solution is limited. The limitations include: the requirement of working in the mandatory VM programming language, such as Solidity; an excessive dependency on the core-software development team; volatile economics, and a lack of blockchain processing and storage capacity.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "The requirement of the limited programming language derives from security concerns. All validating nodes in the decentralized VM must run all blockchain-related code in the ecosystem. Having this code written in a unique language designed for the VM reduces the available opportunities to malicious actors. While the limitation provides baseline security, the customized and often unstable nature of the VM programming language can make the creative process difficult. Also, the need to master a new language adds an additional burden to the developer.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "The dependency on the blockchain's core engineers also slows creative progress for ecosystem developers. When the ecosystem developer discovers a new core-level technology that would increase the developer's productivity and creativity, they must convince the main chain's core-software team to implement the new feature. The core-software engineers, however, may have conflicting interests, as their decisions must meet the needs of all developers and users in their ecosystem.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "In many of the VM-based models, economics for blockchain usage can be volatile. The underlying \"gas\" token that the VM requires (such as Ether) can change in price and value according to the interests of the uneducated masses. This may sound advantageous to a speculator, but a practical business will find that the volatility scares away new users.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "The fact that the VM frequently relies on a single blockchain further hinders developers and users. Block space can be in short supply due to high demand on popular chains. Furthermore, data that is entirely irrelevant to the developer can become required baggage.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "These challenges make the VM model unpleasant for many experienced blockchain engineers. In fact, before Komodo existed, these very concerns inspired the Komodo engineers to avoid the VM model in search of a better solution.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "Antara Modules provide this solution through Komodo's integration of a technology called CryptoConditions.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "a-popular-but-flawed-solution-the-decentralized-virtual-machine" + }, + { + "text": "CryptoConditions: An Industry-Wide Standard", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "CryptoConditions is a technology that allows for arbitrary logical conditions and fulfillments to be evaluated as a part of consensus. This allows for a Smart Chain's consensus mechanism to evaluate the results of arbitrary code and update state in the blockchain's data in a decentralized and secure fashion.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "CryptoConditions technology is not a new concept. The ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "Interledger", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": " team originally proposed this technology in 2016.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "Interledger", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "original proposal", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": " was that it would be an open-source industry-wide standard format. The Interledger team does not seem to have continued exploring the technology beyond the original proposal.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "original proposal", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "Komodo, on the other hand, found the CryptoConditions concept to be intriguing. In 2018, Komodo adopted this open-source technology into the suite of offerings in our Antara framework.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "Our implementation uses many of the key ideas put forth by the Interledger team, and at the same time we depart in several significant ways. Those who are curious for specific details on this topic can explore the open-source code in the respective repositories.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "The important takeaway is that Antara Modules rely on a core technology called, CryptoConditions (CC). This technology allows a developer to add arbitrary logical conditions and fulfillment to their Smart Chain, and to rely on the consensus mechanism to ensure state integrity in a decentralized environment.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "crypto-conditions-an-industry-wide-standard" + }, + { + "text": "Creativity at the Consensus Level, Without Losing the Consensus Mechanism", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "Antara Modules and CryptoConditions together allow a developer to add arbitrary code at the consensus level, and within the core software's daemon, without interfering with the existing consensus mechanism (CM). This grants the developer the ability to add core-level features and innovations without waiting for the approval of other members of the Komodo ecosystem. Combined with Komodo's Bitcoin-hash rate security, the simplicity of Antara Modules provides the developer with a competitive level of creative freedom.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "The entry point between Antara Modules and the CM is a new Bitcoin-script ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "operation code", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": ", \"OP_CHECKCRYPTOCONDITIONS\", or OP_CCC for short. When executed, OP_CCC is able to initiate additional arbitrary code that is written in any programming language, assuming the language can call and execute C/C++ code in return. The arbitrary code is separate from the CM, thus maintaining the CM's reliability. When the arbitrary code completes, OP_CCC returns a ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "false", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": " statement to the daemon. If the returned OP_CCC value is ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "true", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": ", the daemon performs a transaction.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "operation code", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "The transaction can contain meta data in the normal manner. Therefore, these transactions can also implement other data-storage features of Komodo software. Examples include the ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "key-value storage", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": " feature, the ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "Oracles Antara Module", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": ", or the native ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "vout", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "batontxid", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": " key-value pairs.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "key-value storage", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "Oracles Antara Module", + "tagName": "a", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "With access to the meta data established, Antara Modules are able to act as an application-state manager. State-related data is held in utxos that are accessible to the CM. As application-state management is based on the utxo model, the management also follows the CM's rules for consensus. This powerful combination allows the developer to collect, organize, and act upon data in a securely decentralized manner.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "In addition, once the data is notarized, it can also be called by other Komodo-based Smart Chains, depending on the manner in which the developer(s) form their chain. This allows developers to form clusters of blockchains to enhance their software, as opposed to relying on a single blockchain, or on a single child chain. The speed and data-storage capabilities of a cluster are thus exponentially greater than the offerings of many VM-based competitors.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "Also of note is the simplicity of the Antara Module architecture. All new code created for an individual Antara Module is contained in an optional library. Modules from the library are included in compilation only on participating blockchains. In this manner, developers who desire a module's functionality can include the necessary libraries, and those who do not require the module can avoid this excess baggage.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "The Komodo daemon has no need of an external VM. This eliminates what would otherwise be a cumbersome requirement for the developer and the core engineers. At the same time, the daemon offers all the capabilities of a VM-based blockchain — ⁠and arguably more.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "creativity-at-the-consensus-level-without-losing-the-consensus-mechanism" + }, + { + "text": "Antara Modules In Action: Accomplishing Years' Worth of Work In But A Weekend", + "tagName": "h2", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "Examples of the power of Antara Modules can be found by observing existing modules. Consider how Antara allowed the Komodo ecosystem to swiftly and easily upgrade the Komodo consensus mechanism (CM) to include quantum-proofing capabilities.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "In years past, other blockchain projects in the cryptocurrency community had focused on manually upgrading their CM for quantum-proofing protection. Although this feature appeared to be an advantage, this was not true. Adding customized code to the CM itself to protect addresses from quantum-capable computers was a time-consuming and expensive process.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "Paradoxically, once the new quantum-proof CM was achieved, it only served to isolate the project team. The code itself was untested and unreliable, and the users of the cryptocurrency community had to endure these roadblocks. Furthermore, the customized CM was often incompatible with much of the activity in the open-source blockchain ecosystem; for each industry-wide technological advancement, the team often had to adapt their customized CM on their own.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "Komodo's engineers chose not to spend energy building a new quantum-proof CM, but rather they worked to add Antara Modules first. Once this technology was available, the Komodo core software team took existing quantum-proofing technology, read summaries published by academics and researchers, and created a new Antara Module to add quantum-proofing functionality to the Komodo CM.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "The time between project initiation and releasing a beta version for community testing was approximately one weekend. Only one core developer's attention was required. The Komodo daemon remains compatible with all other software features as before, able to quickly adopt new ideas from others in the open-source community as soon as they arrive. At the same time, users who desire quantum proofing for their long-term financial interests have a module readily available, and users who are not interested have not experienced an interruption in their blockchain services.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + }, + { + "text": "The ability to adopt the ideas of others quickly, while maintaining the accomplishments, security, and compatibilities of one's predecessors, makes Antara Modules a wise choice for experienced developers who wish to have the most advanced technology available without a significant hassle.", + "tagName": "p", + "path": "antara/tutorials/overview-of-antara-modules-part-ii", + "closestElementReference": "antara-modules-in-action-accomplishing-years-worth-of-work-in-but-a-weekend" + } + ], + "antara/tutorials/pegs-module-creator-tutorial": [ + { + "text": "Pegs Module Creator Tutorial", + "tagName": "h1", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "The Pegs Module is in the final stages of production.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "The following tutorial is currently only compatible with computer-hardware setups that are running Linux OS's Ubuntu/Debian-based distributions.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "For questions and assistance, please reach out to the Komodo team using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "#cc-pegs", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": " channel on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "Komodo Discord", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": " live-chat server. Thank you.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "Komodo Discord", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "pegs-module-creator-tutorial" + }, + { + "text": "Tutorial Overview", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "This tutorial assists the reader in discovering the process of creating a new Smart Chain with an active stablecoin using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Pegs Antara Module.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Pegs Antara Module.", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Tutorial Outline", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Launch a new test Smart Chain (", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "CREATORUSDK", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": ") to activate the Pegs Module", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Peg the test chain's coins to ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "USD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " and create a pathway for users to back the stablecoin with ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Create tokens to represent the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " coins", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Create an oracle, register as a publisher, and subscribe to it", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Create a gateway and bind the previously created token and oracle to it", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Start the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "oraclefeed", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " software to bring the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "blockheader", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " data from the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " chain to the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "CREATORUSDK", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " chain through the oracle", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Create a peg by attaching the gateway to it", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Upon completion of this tutorial, the reader may follow the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "user tutorial", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " and use the Smart Chain created here to discover the possibilities of the Pegs Module.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "user tutorial", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "installation" + }, + { + "text": "The following installation procedure creates a version of the Komodo software daemon that should not be used for any purpose other than testing. Several of the customizations active on this particular version of the daemon are intended for testing purposes only.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Dependencies", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "dependencies" + }, + { + "text": "Execute the following commands to install the necessary dependencies.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "dependencies" + }, + { + "text": "Create a Swap Partition (Optional)", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "For tutorial users using a VPS with a low amount of RAM, create a swap partition.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "On the VPS, execute the following commands to create a 4GB SWAP file. (If sufficient space is available, consider creating an 8GB swap file instead, as this can facilitate better software performance.)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "Build the Komodo daemon", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "Execute the following commands to build the Komodo daemon.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "This tutorial requires that the tutorial reader compile the Komodo daemon from source code. For more instructions, please see the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "installation section", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " .If you have access to two VPS, follow ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "this guide", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": ". If you want to launch this Smart Chain in your Personal Computer or using a single VPS, follow ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "this guide", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "installation section", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "this guide", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "this guide", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "Obtain a pubkey", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Recall also that a user must have a ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": " enabled when interacting with an Antara-related Smart Chain. ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "View this linked material for an explanation.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "View this linked material for an explanation.", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "obtain-a-pubkey" + }, + { + "text": "Launch the Test Smart Chain", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "The command below creates and launches a new Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "The following list explains a few of the Smart Chain customizations that are necessary and desirable for a Smart Chain designed for testing purposes.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-ac_name=CREATORUSDK", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — the name of this Smart Chain is set to ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "CREATORUSDK", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-ac_import=PEGSCC", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — the key customization that activated the Pegs Antara Module on the new Smart Chain", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-ac_end=1", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — sets the mining block reward to zero (after the first block)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-debug", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — a debug parameter that instructs the daemon to track various information for console output", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-printoconsole", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — instructs the daemon to print the information from the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "debug", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " parameter to the console", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "-ac_supply=1000000", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " — the amount of intial coin supply for the chain (an arbitrary amount here that includes enough coin to manage testing purposes of the chain)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "Consult the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "Antara Customizations", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": " documentation for explanations of the other parameters in the command.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "Antara Customizations", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "launch-the-test-smart-chain" + }, + { + "text": "Create a Token to Represent KMD Coins", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "To create tokens that are capable of representing ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " (although the tokens are not yet tied to actual ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "), execute the following command on the test chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "This creates a total of ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "100000 * 10^8", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " tokens named ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " chain. Each token is capable of representing a single satoshi of the external coin ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "All the tokens combined allow up to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "100000", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " coins on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "The description of the token, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "\"KMD_BTC,BTC_USD,*,1\"", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " specifies the synthetic price to be used by a peg (not yet created).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "\"KMD_BTC,BTC_USD,*,1\"", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " means ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "(KMD/BTC) * (BTC/USD) * 1", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ". This simplifies to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD/USD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ", which provides an exchange price between the two currencies. This provides the necessary information to peg the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " stablecoin to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "USD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " and to back the coin using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "The command returns a hex value as a response.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Select the hex value (", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "0100000001c05c55f5183a412750a...", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ") and copy it using (CTRL + SHFT + C).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Broadcast this value using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "sendrawtransaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "sendrawtransaction.", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "The value of the response is called the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " into a text editor and keep it available for future use.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Watch the mempool using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " to verify that the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " is successfully mined.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Once the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " disappears from the mempool the transaction is mined.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " to check that the token is successfully created.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokeninfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "The tutorial reader may now check the balance of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": " used to launch the daemon using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenbalance", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "tokenbalance", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-a-token-to-represent-kmd-coins" + }, + { + "text": "Create an Oracle", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Oracles", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " Module is able to add external data to a blockchain. This modules allows the Pegs module to obtain the information needed regarding user activity and accurate prices.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Oracles", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "When creating a new oracle, the name of the oracle is identical to the name of the tokens, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " and the data format starts with ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Ihh", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " (height, blockhash, merkleroot).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Create the oracle using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclescreate", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclescreate", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The response is a hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Broadcast the returned hex value using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The response is a transaction id, called the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oracleid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Record this value in the text editor.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesfund", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " method to fund the oracle.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Send the raw transaction by broadcasting the hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Optionally use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " method to ensure that the transaction receives confirmation.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "To prepare for the oraclefeed instance, use ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " to register as a publisher for the oracle. This command must be executed on a node which can post ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " block headers and which can execute withdrawal transactions.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesregister", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a hex value which must be broadcast using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ". (Not shown for brevity)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Retrieve the data publisher's ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclesinfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The key, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "\"publisher\"", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", in the entry, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "\"registered\"", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", of the returned json object is the data publisher's ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ", also called the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "publisherpubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Subscribe to the oracle using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " to receive utxo information for data publishing.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "The frequency of data-publishing transactions that can be included in a block is equal to the number of active subscriptions committed to the oracle. Therefore, there must be at least one subscription for the oracle to allow publishing.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Subscribe to the oracle using the following command.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "This returns a hex value that must be broadcast using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " (not shown for brevity).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "In this tutorial example, the tutorial reader needs to be able to publish data more than once per block. Therefore, execute the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": " methods several times and with the same amount.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Verify the oracle information to ensure it is properly established.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-an-oracle" + }, + { + "text": "Bind the Token and Oracle to a Gateway", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "Create a gateway and bind the data from this tutorial to the gateway using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "gatewaysbind", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "gatewaysbind", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "This method requires that tutorial reader decide how many total gateway signatures are desired (represented by the value ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "), and how many signatures are required to withdraw funds (represented by the value ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "M", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "For this tutorial, the reader may set both ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "N", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "M", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " equal to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " for simplicity.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "gatewaysbind", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " command requires that the user indicate the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "pubtype", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "p2shtype", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ", and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "wiftype", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " values for the chosen coin. For Smart Chains, these values are ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "60", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ", ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "85", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "188", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " respectively.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "This method returns a hex value that must be broadcast using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " (not shown for brevity).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "The broadcast returns a transaction id, also called the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ". Copy this information to the text editor.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "Assuming everything is properly created and executed, review the new gateway using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "gatewaysinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "gatewaysinfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "Use the returned information to verify that the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "tokenid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "oracleid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": " match the information copied from this tutorial to the text editor.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "bind-the-token-and-oracle-to-a-gateway" + }, + { + "text": "Start the oraclefeed software", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "oraclefeed", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " software instance automates the transfer of merkleroot data from the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " chain to the oracle on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "Change into the directory where ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "komodod", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " are compiled.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "Compile the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "oraclefeed", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": " software instance.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "Initiate the instance.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "Inserting the values.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "start-the-oraclefeed-software" + }, + { + "text": "Create the Peg", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "Create a peg that will create ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " coins pegged to USD and backed by ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegscreate", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " method is capable of creating a peg that is backed by more than one external coin. This is accomplished by adding more than one ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "bindtxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " to the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegscreate", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " command.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "Each associated gateway requires a unique token, oracle, and a running instance of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "oraclefeed", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " software, as previously described in this tutorial.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "For the sake of simplicity, this tutorial utilizes only one gateway (bound to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " coins).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "This method returns a hex value that must be broadcast using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " (not shown for brevity).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "The broadcast returns a transaction id, also called the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": ". Copy this information to the text editor.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " is the reference to the peg created in this tutorial. To make sure all the nodes running the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " chain are aware of the correct pegs contract, after the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " transaction is mined the reader must shutdown any daemons running the chain. The tutorial reader then restarts the nodes, but with a slightly modified version of the launch parameters. The parameters now include ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "-earlytxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": ", and this parameter is set equal to the value of ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "In the following command, replace the text ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " with the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "pegstxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " from this tutorial.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "For any Smart Chain, the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "-earlytxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " must be added to the launch parameters before the chain reaches a total block height of ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "100", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": ". The tutorial reader may control the pace of mining on a Smart Chain with the commands ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "./komodo-cli setgenerate true 1", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " (starting) and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "./komodo-cli setgenerate false", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " (stopping).", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "Any new node joining the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "CREATORUSDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " network must use the new launch parameters with the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "-earlytxid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": " included.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "create-the-peg" + }, + { + "text": "Test the Setup", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "test-the-setup" + }, + { + "text": "Follow the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "test-the-setup" + }, + { + "text": "Pegs Module Tutorial - User", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "test-the-setup" + }, + { + "text": " documentation to continue learning about the Pegs Antara Module.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "test-the-setup" + }, + { + "text": "Pegs Module Tutorial - User", + "tagName": "a", + "path": "antara/tutorials/pegs-module-creator-tutorial", + "closestElementReference": "test-the-setup" + } + ], + "antara/tutorials/pegs-module-user-tutorial": [ + { + "text": "Pegs Module User Tutorial", + "tagName": "h1", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "The Pegs Module is in the final stages of production.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "The following tutorial is currently only compatible with computer-hardware setups that are running Linux OS's Ubuntu/Debian-based distributions.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "For questions and assistance, please reach out to the Komodo team using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "#cc-pegs", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": " channel of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "Komodo Discord", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": " live-chat server. Thank you.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "Komodo Discord", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "pegs-module-user-tutorial" + }, + { + "text": "Tutorial Overview", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "This tutorial uses the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": " test and development Smart Chain to introduce the process and workflow of a user of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Pegs Antara Module.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Pegs Antara Module.", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-overview" + }, + { + "text": "Tutorial Outline", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Connect to the test Smart Chain ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "USDKTEST", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Deposit ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " coins (on the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " Smart Chain) in the address associated with the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "USDKTEST", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " Gateways Module", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Claim tokenized ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " on the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "USDKTEST", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " chain", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Lock tokenized ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " in the Pegs Module and receive ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "USDK", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " coins", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Redeem tokenized ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " using the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "pegsredeem", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " method", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Return tokenized ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " to the Gateway to receive ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " coins on the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": " Smart Chain", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "tutorial-outline" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "installation" + }, + { + "text": "The following installation procedure creates a version of the Komodo software daemon that should not be used for any purpose other than testing. Several of the customizations active on this particular version of the daemon are intended for testing purposes only.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Dependencies", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "dependencies" + }, + { + "text": "Execute the following commands in the Unix terminal.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "dependencies" + }, + { + "text": "Create a Swap Partition (Optional)", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "For tutorial users using a VPS with a low amount of RAM, create a swap partition.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "On the VPS, execute the following commands to create a 4GB SWAP file. (If sufficient space is available, consider creating an 8GB swap file instead, as this can facilitate better software performance.)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "create-a-swap-partition-optional" + }, + { + "text": "Build the Komodo daemon", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "Connect and Sync to USDKTEST and KMD", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Navigate to the source directory.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Execute the following launch parameters.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "In the following command, replace the text, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": ", with the appropriate pubkey. ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "To learn more about setting a proper pubkey, please read this linked article from the Komodo documentation.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "To learn more about setting a proper pubkey, please read this linked article from the Komodo documentation.", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Import the private key corresponding to the pubkey used to start the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " chain. Note the text ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " that must be replaced in the following command.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Allow the chain to sync.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Check the sync status using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " method. When the keys ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "blocks", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "longestchain", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " have the same value, the chain is synced. Once the chain is synced, begin mining the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Mine until the balance returned from the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " method is at least ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "30k", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " satoshis. This requires mining approximately ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "3", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "connect-and-sync-to-usdktest-and-kmd" + }, + { + "text": "Sync the KMD Smart Chain", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "sync-the-kmd-smart-chain" + }, + { + "text": "In a new terminal, change into the Komodo source directory and execute the following command.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "sync-the-kmd-smart-chain" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "sync-the-kmd-smart-chain" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "sync-the-kmd-smart-chain" + }, + { + "text": " method, as before, while waiting until the blockchain syncs.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "sync-the-kmd-smart-chain" + }, + { + "text": "Start Testing", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Key Information for this Tutorial", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "The following key information is used throughout this tutorial. Refer back to this content as often as needed.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "KMD token (tokenid): 1a459712f1e79a544efdf55cfb3e111c5df3300a4da4d16cb3b963bbb50aebf1", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Oracle (oracletxid): a6a59fbdc0ba8b138a4d14ff334a533f0358144091aa999ef45fd7498ab4189a", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Gateways (bindtxid): 50384e7668bd6908d8e0b67f1450c56f017186d802b1065c3258302a30b5adb2", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Faucet: 7bc2dafc4d71c7e178b3a2a89e7ddc894cb14dbeff5937fa869915adf1af5108", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Pegs (pegstxid): a9539ec8db34ee44ff213cda59f412a02795821cf05844b0bc184660711371f7", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "The types of transactions performed in this tutorial require at least one confirmation from the network before the user should proceed to the next step in the outline.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "When performing cross-chain operations, the user may need to wait for two or three confirmations on the source chain before any related activity will appear on the destination chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "start-testing" + }, + { + "text": "Deposit KMD in the Associated USDKTEST Gateways Address", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "Execute the following command to discover the address associated with the Gateways Module.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "deposit", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " address is ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "bPFkXSYYYDWBLbp8AxfY5KKGgxt5RPfN9p", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "Go to the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " chain and execute one transaction that sends a few ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " coins to two addresses.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "The first address is the address above, and this should receive the majority of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " sent in this transaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "The second address is the address corresponding to the tutorial user's ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " used to launch the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " Smart Chain. This second address requires only a small amount of ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " (a few satoshis); this part of the transaction creates a marker that indicates to the Gateways Module the owner of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " funds.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": " allows the user to send coins to two addresses in a single address, as follows.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "z_sendmany", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "Observe the following example.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposit-kmd-in-the-associated-usdktest-gateways-address" + }, + { + "text": "Obtain the txid of the Deposit Transaction", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " returns an operation id, ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "opid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": ". Use this ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "opid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " to obtain the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " of the transaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "z_sendmany", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "(Alternatively, check the website ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "explorer", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " by searching for any of the addresses associated with the transaction and searching for the most recent transaction.)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "explorer", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "opid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " as follows to obtain the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": " of the transaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "obtain-the-txid-of-the-deposit-transaction" + }, + { + "text": "Wait for the Deposit Transaction to Reach the Oracle", + "tagName": "h2", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-reach-the-oracle" + }, + { + "text": "Wait for the Deposit Transaction to be Mined", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "Before the transaction can reach the Oracle, a miner on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " chain must mine the transaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " method to obtain a list of transactions waiting to be mined and search for the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " of the deposit transaction. If the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " is not there, a miner has mined the transaction.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "Once the transaction is mined, use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " method to find the block height at which the transaction was mined.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "getrawtransaction", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "In the following command, replace the text ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " with the deposit ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " retrieved earlier.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "From the response, take note of the value associated with the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "height", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " key. The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": " transaction was mined at this height.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "wait-for-the-deposit-transaction-to-be-mined" + }, + { + "text": "Observe the txid Reach the Oracle", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Check whether the block header associated with the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " block of height ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "height", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " has been submitted to the Oracle on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Find the pubkey of the publisher associated with the Token, Gateway, and Peg using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "tokeninfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Take note of the value of the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "owner", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " key in the response. This is the pubkey of the publisher.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " method to find the baton address for this publiser.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "oraclesinfo", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Among the registered publishers in the response, notice that there is a publisher whose pubkey matches the one we took note from the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " call. The value of the key named ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "baton", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " is needed to get the past samples published by this publisher.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "In the following command, replace the text ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " with the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "baton", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " from the previous step.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "This returns the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "5", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " latest data points published by the publisher associated with the Peg system.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Note the block height in the returned data points. Wait until the highest block height is ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": ">=", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " greater than or equal to the block height of the deposit transaction discovered earlier in the tutorial. (This is the process of transferring information between the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": " chains.)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "observe-the-txid-reach-the-oracle" + }, + { + "text": "Inform the Gateways Module and Claim the Tokenized KMD", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": " method to inform the Gateways Module of the deposit.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "gatewaysdeposit", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "Structure of the command to be executed:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "gatewaysdeposit bindtxid height coin cointxid claimvout deposithex proof destpub amount", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "inform-the-gateways-module-and-claim-the-tokenized-kmd" + }, + { + "text": "Details", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "gatewaysdeposit", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The name of the method, submitted as-is", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "bindtxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The Gateway's ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "bindtxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " (see above)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "height", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "height", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " of the block in which the deposit ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " was confirmed in the earlier step", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — Ticker of the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " deposited (", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " in this example)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "cointxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " of the deposit", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "claimvout", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The marker utxo's vout number in the external deposit transaction; this value is always ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "0", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " when the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "z_sendmany", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " method is used, as shown in this tutorial", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "deposithex", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The hex value from ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "gettransaction", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " call for the deposited ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " (the method for retrieving this value is shown in the following section)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "proof", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "proof", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " value returned from the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "gettxoutproof", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " method using the deposit ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " (the method for retrieving this value is shown in the following section)", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "destpub", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The user's ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " used to launch the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "USDKTEST", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " Smart Chain", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": " of coin (", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": ") deposited", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "The following commands retrieve the missing information.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details" + }, + { + "text": "deposithex", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposithex" + }, + { + "text": "The following command returns the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposithex" + }, + { + "text": "deposithex", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposithex" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposithex" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "deposithex" + }, + { + "text": "proof", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "gettxoutproof", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": " method with the deposit ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": ". This returns the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "proof", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": " as a hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "gettxoutproof", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "proof" + }, + { + "text": "Call the gatewaysdeposit Method", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "gatewaysdeposit", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": " method using the acquired information. Observe the following example as necessary.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "gatewaysdeposit", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "This method returns a response that has a hex value that must be broadcast.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "Response:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": " method to broadcast the hex value from the response.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "This is the deposit ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "call-the-gatewaysdeposit-method" + }, + { + "text": "Claim the Tokenized KMD", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "gatewaysclaim", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": " method to claim the tokenized ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": " on the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": " Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "gatewaysclaim", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "Method structure:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "gatewaysclaim bindtxid coin deposittxid destpub amount", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "claim-the-tokenized-kmd" + }, + { + "text": "Details", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "gatewaysclaim", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — The name of the method, executed as-is", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "bindtxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — This is the creation txid of the Gateway; supplied at the beginning of the tutorial", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — Ticker of the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " deposited", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "deposittxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "txid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " returned from the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "gatewaysdeposit", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " transaction", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "destpubkey", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — The user pubkey used to launch the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "USDKTEST", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " daemon", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": " deposited", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "Observe the following example structure.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "Broadcast the returned hex value using ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-2" + }, + { + "text": "Verify the Returned Tokenized KMD", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "tokeninfo", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": " method to check that the above commands result in a deposit in the tutorial user's account of the appropriate amount of tokenized ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "The description ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "\"KMD_BTC,BTC_USD,*,1\"", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": " indicates to the Pegs modules the price to be considered.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-the-returned-tokenized-kmd" + }, + { + "text": "Exchange Tokenized KMD for USDK Coins", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsfund", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " method to lock the tokenized ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsfund", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Broadcast the hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsget", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " method to retrieve the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "USDK", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsget", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Broadcast the returned hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Examine the tutorial user's account history using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsaccounthistory", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "pegsaccounthistory", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "(If there are duplicate entries in the above call, please ignore them. This is a known bug and will be fixed.)", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Use ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " methods to verify that the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " coins are in the tutorial user's account.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "getbalance", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "At this point, a normal user may use the stablecoins (", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": " in this example) to buy, sell, and trade.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "exchange-tokenized-kmd-for-usdk-coins" + }, + { + "text": "Redeeming the Stablecoins for the Locked Funds", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "When finished with the stablecoins, the user may send to the Pegs Module the precise amount of ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "USDKTEST", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": " coins withdrawn in order to receive the locked ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": " tokens.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "pegsredeem", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": " method to redeem the tokens.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "pegsredeem", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "Broadcast the hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "redeeming-the-stablecoins-for-the-locked-funds" + }, + { + "text": "Verify that the Tokens are Redeemed", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": "tokenbalance", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": " method to verify that the tokens are redeemed and available in the tutorial user's local wallet.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": "tokenbalance", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "verify-that-the-tokens-are-redeemed" + }, + { + "text": "Retrieve the KMD Coins on the KMD Smart Chain", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "Send the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": " tokens to the Gateways Module using the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "gatewayswithdraw", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "gatewayswithdraw", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "Method structure:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "gatewayswithdraw bindtxid coin withdrawpub amount", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "retrieve-the-kmd-coins-on-the-kmd-smart-chain" + }, + { + "text": "Details", + "tagName": "h4", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "gatewayswithdraw", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " — The name of the method, executed as-is", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "bindtxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " — The Gateway Module's ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "bindtxid", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " — Ticker of the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "coin", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " deposited", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "withdrawpub", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " — The user's pubkey to which the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " coins should be sent on the ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "KMD", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " chain", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " — The ", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "amount", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " to be sent", + "tagName": "li", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "Broadcast the hex value.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "Output:", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "The user will now receive the requested ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "KMD", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": " coins in the address of the chosen pubkey.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "details-3" + }, + { + "text": "Liquidation", + "tagName": "h3", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "A user that does not yet have a pegs account (obtained via the ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsfund", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsexchange", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " methods) can exchange the Pegs-related Smart Chain's coins for deposited tokens of another user's account whose debt ratio is in the \"yellow zone\" (", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "80%", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " to ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsfund", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsexchange", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsworstaccounts", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " method can be used to retrieve a list of all accounts that are in the \"red zone\" (where the debt ratio exceeds ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "90%", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": ").", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsworstaccounts", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsliquidate", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " method can be used to liquidate any of these accounts by repaying the account's outstanding debt using the Pegs-related Smart Chain's coins. This gives the executor of the method an immediate ", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "5%", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": " profit.", + "tagName": "p", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + }, + { + "text": "pegsliquidate", + "tagName": "a", + "path": "antara/tutorials/pegs-module-user-tutorial", + "closestElementReference": "liquidation" + } + ], + "antara/tutorials/rogue-module-tutorial": [ + { + "text": "Rogue Module Tutorial", + "tagName": "h1", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "rogue-module-tutorial" + }, + { + "text": "This tutorial documentation is associated with the Rogue API documentation.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "rogue-module-tutorial" + }, + { + "text": "Link to Rogue API documentation", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "rogue-module-tutorial" + }, + { + "text": "Link to Rogue API documentation", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "rogue-module-tutorial" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The Rogue Antara module serves as a proof-of-concept to demonstrate Antara's capabilities as a blockchain-based gaming technology.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The Rogue module is based on the classic ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Rogue", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": " game. As such, it can be categorized as a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Roguelike.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Rogue", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Roguelike.", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The core aspects of Rogue gameplay occur on the blockchain. These aspects include such data as character health points, items, movement, attacks, and other relevant game states.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Komodo's Rogue implementation makes use of the classic on-screen visual representation of gameplay. This interface relies on ASCII characters to represent characters, items, and other in-game objects and actions.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The procedures to launch and finish a game require the execution of various methods (RPCs). To make the game more easy to start and finish for players who are not comfortable with the terminal, the Komodo team has created a Terminal User Interface (TUI).", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "The following installation and walkthrough tutorials can assist the reader in testing Rogue. For more information, please reach out to our community on ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": ". The #cc-rogue channel is available for questions and assistance.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "introduction" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installation" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "requirements" + }, + { + "text": "Rogue is available for modern MacOS, Linux, and Windows operating systems.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "requirements" + }, + { + "text": "Download Software Bundles", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Komodo provides downloadable software bundles that contain all necessary components. The user need only download and unzip the contents for their appropriate operating system and they are ready for gameplay.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Software bundles can be found in the link below:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Link to software bundles", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Link to software bundles", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Please feel free to ask on our #cc-rogue channel on ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Discord", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": " for updates and assistance.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Discord", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "download-software-bundles" + }, + { + "text": "Compile Rogue Software Manually", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "compile-rogue-software-manually" + }, + { + "text": "The following instructions are necessary only for users/developers who wish to compile Rogue software from source code. Users who have already downloaded the software bundles linked above do not need to compile source code manually.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "compile-rogue-software-manually" + }, + { + "text": "Install Dependencies", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "install-dependencies" + }, + { + "text": "Linux", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "linux" + }, + { + "text": "MacOS (OSX)", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "Use the terminal to ensure the MacOS XCode tools are installed:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "Ensure the latest version of ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "brew", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": " is installed. If necessary, execute the following command:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "Once ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "brew", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": " is installed, execute each of the following commands:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os-osx" + }, + { + "text": "Windows", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows" + }, + { + "text": "Playing Rogue on Windows requires an installation of MinGW, which can be downloaded here:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows" + }, + { + "text": "Link to MinGW", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows" + }, + { + "text": "Link to MinGW", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows" + }, + { + "text": "Once installed, use a Debian cross-compilation setup and run the following commands in Linux:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows" + }, + { + "text": "Clone & Compile Komodo", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "clone-and-compile-komodo" + }, + { + "text": "Linux", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "linux-2" + }, + { + "text": "MacOS", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "mac-os" + }, + { + "text": "Windows", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": "Change the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": "8", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": " in the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": "-j8", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": " portion of the last command to any number of\nprocessor threads desired and/or appropriate for your machine.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "windows-2" + }, + { + "text": "Update ", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "komodod" + }, + { + "text": "komodod", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "komodod" + }, + { + "text": "Launch the ", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "value" + }, + { + "text": "ROGUE", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "value" + }, + { + "text": " chain and Set ", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "value" + }, + { + "text": "pubkey", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "value" + }, + { + "text": " Value", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "value" + }, + { + "text": "Step 1 - Start the chain", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-start-the-chain" + }, + { + "text": "Start the ROGUE chain with the following command in a terminal window and wait for the daemon to sync. Keep this terminal open and the daemon running for the duration of your Rogue gameplay.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-start-the-chain" + }, + { + "text": "Step 2", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2" + }, + { + "text": "Open a new terminal. This terminal can be used to execute all remaining installation and gameplay commands.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2" + }, + { + "text": "The returned value is a ROGUE address. We need to find the associated pubkey for this address.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2" + }, + { + "text": "Step 3", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": " method with the address.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": " method will return information similar to the following:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "Look for the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": " value:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "This is the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": " for our address.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3" + }, + { + "text": "Step 4", + "tagName": "h5", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "Set the pubkey for the ROGUE Smart Chain.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "The pubkey is now set.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "To reuse this pubkey in the future, include the pubkey as a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "Include the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": " in the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": " launch parameter as follows:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4" + }, + { + "text": "Installing the TUI (Optional)", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "Komodo offers an unofficial Terminal User Interface (TUI) to allow players to launch and conclude a game without having to interact with the module's API commands. The TUI software is provided for testing and ease-of-use purposes only.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "Use of the TUI is optional, but recommended for most players.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "The TUI software can be found in the downloadable software bundles:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "Link to downloadable software bundles", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "Link to downloadable software bundles", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "installing-the-tui-optional" + }, + { + "text": "Walkthrough for API", + "tagName": "h2", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Under normal circumstances, a user does not need to manually execute methods in the terminal to launch and conclude a game. Rather, the downloadable software bundles contain all necessary tools to play.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "For users/developers who need a reference for the manual process, the following walkthroughs provide detailed step-by-step instructions.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Single-Player Mode Walkthrough", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Single-Player Mode Walkthrough", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Multi-Player Mode Walkthrough", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Multi-Player Mode Walkthrough", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "walkthrough-for-api" + }, + { + "text": "Single-Player Mode Walkthrough", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode-walkthrough" + }, + { + "text": "Step 1", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1" + }, + { + "text": "Open a new terminal and navigate to the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1" + }, + { + "text": " directory:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1" + }, + { + "text": "Step 2", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "Create a new game via the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " method. For this example, we choose to have a single player with a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " buy-in requirement.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "newgame", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "Methods for ROGUE require the use of the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " method. The Rogue module's required ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " for the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "cclib", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " method is ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "17", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "cclib", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "The ROGUE software currently broadcasts the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "hex", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " value automatically. It is not necessary to use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "The returned transaction id ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": " is the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": ". Save this for future use.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-2" + }, + { + "text": "Step 3", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "Check the game's state using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "gameinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "In the returned json object, observe the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "run", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": " value. This lists the specific command that must be executed in the terminal to register the game.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-2" + }, + { + "text": "Step 4", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": "Register the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": " using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": "register", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-4-2" + }, + { + "text": "Step 5", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "Check the game's current state again using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": " method. Use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": " as an argument:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "gameinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "Note that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": " method now returned a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": " value, as well as player data.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "In the returned json object, find the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "run", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": " value. This is the exact command needed to start the game.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-5" + }, + { + "text": "Step 6 - Play", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "Wait until the network mines the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "register_txid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": ". Optionally, use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": " method to monitor the status of the transaction.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "Once the transaction is mined, execute the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "run", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": " command (found in the returned json object earlier) to start the game:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "The game is now running and should be visible on-screen.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-6-play" + }, + { + "text": "Step 7 - Play the Game", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-7-play-the-game" + }, + { + "text": "For instructions on in-game controls and objectives, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-7-play-the-game" + }, + { + "text": "read this linked section.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-7-play-the-game" + }, + { + "text": "read this linked section.", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-7-play-the-game" + }, + { + "text": "Step 8 - Bailout", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "If your character is still alive and you would like to leave the game while keeping your profits, follow this procedure to save your character:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "To quit the game, type the letter ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "Q", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " on the keyboard. This opens a context menu. Type the letter ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "n", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " and press ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "Enter", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "This begins the process of leaving the game, but you are not finished yet.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "Wait for the ROGUE network to mine all ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " transactions. To see a list of all ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " created, check the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "keystrokes.log", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " file in the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " directory, and use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " method to verify when the last ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "keystrokes", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " are mined.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "keystrokes", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "When the last transactions are mined, execute the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " method to leave the game while keeping the character and items in your ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": ", and the method will also transfer your in-game gold to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "bailout", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "For example:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "After the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " transaction is mined the player may view their surviving character(s) via the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": " methods.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "players", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-8-bailout" + }, + { + "text": "Step 9: Highlander Victory", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "In this walkthrough we have used single-player mode. The following ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " method is only available if the character manages to capture the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " and safely exit the dungeon. In a normal multi-player game, the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " method is available to either the first player to safely retrieve the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": ", or to the last player standing after all others have died.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "The player that successfully executes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " method receives a prize: the collective value of all ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " coins that were contributed during the buy-in stage.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " method is executed as follows:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "After the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " transaction is mined the player may view their surviving character(s) via the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": " methods.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "players", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-9-highlander-victory" + }, + { + "text": "Multi-Player Mode Walkthrough", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "In this walktrough we use two nodes to play a multi-player game of Rogue.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "Node 1 is ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "player1", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "Node 2 is ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "player2", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "For educational purposes, we execute all methods manually, as opposed to using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "TUI", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "TUI", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode-walkthrough" + }, + { + "text": "Step 1: Create a Multi-Player Game", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Open a new terminal and navigate to the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " directory:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "For this game, we choose the following details:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "the max number of players: ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "2", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "the cost in ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "ROGUE", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " coins of the game ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "buyin", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": ": ", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "0.1", + "tagName": "li", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Execute the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "newgame", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " method on ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " as follows:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "newgame", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Save the returned ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value for future use. This is our ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " method to check information about the game:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "gameinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "As shown in the returned json object, the game has a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "maxplayers", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value of ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " and an ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "openslots", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value of ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": ", as no players have joined.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Note that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "gameheight", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "54265", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": ". This is the block height at which the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " was created.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Also note that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "54270", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": ". This is the block height at which the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": " value will be revealed, allowing players to generate the level design and begin the game.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-1-create-a-multi-player-game" + }, + { + "text": "Step 2: Register for the Game", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "For our example, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " would like to use an existing character that survived a previous game. This allows ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " to start with all the advantages this character achieved previously, including character statistics and items.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "To activate the existing character, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " includes the associated ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " for the character when executing the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method. (The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " values of any ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " can be found using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method.)", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "register", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "players", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "The player also includes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " as the first argument of the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "In our example, the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " node does not have a character from a previous game, and therefore ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " executes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method with only the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "Wait until the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "txid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " values returned on both nodes are mined. (Use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method to check the transaction's status.)", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "getrawmempool", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "After the transactions are mined, use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " method to check the game's status again:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "gameinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "openslots", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " value is now ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "0", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": ", as ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " players have joined.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "Note also that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "start", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " block height has past, and therefore the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " value is available.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "Also note that the response includes information about the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " character provided by ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " during registration.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "The game is prepared. Both players may begin the game using the command found in the returned ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "run", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": " value.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-2-register-for-the-game" + }, + { + "text": "Step 3: Play and Finish the Game", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "View this linked section for instructions on gameplay.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "View this linked section for instructions on gameplay.", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "In our example, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " decides to bail out of the game without waiting until ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " dies, and without retrieving the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " from the dungeon.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "To exit, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " executes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "bailout", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "With the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " transaction mined, the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "gameinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " method now returns updated information:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "Command:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "Note that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "alive", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " property has a value of ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": ", indicating that the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " character has left and the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " character remains. Also note that in the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " array, the first json object (which describes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " node) has a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "status", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " of ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "finished", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "Since ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " left early, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " is the last character standing. The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " method is now available to him.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " first begins the exit procedure by entering ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "Q", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": ", then ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "y + Enter", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "With the exit process in motion, ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " executes the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " method:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "The multi-player game is now finished. The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "player2", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " node received the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " prize, including the total ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " amount and an increased conversion rate of in-game gold to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " coins.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "After the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " transactions are mined, the players may view their surviving character via the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "players", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": " methods.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "players", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "step-3-play-and-finish-the-game" + }, + { + "text": "Gameplay Documentation", + "tagName": "h2", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-documentation" + }, + { + "text": "As Komodo's Rogue implementation is based off of the classic Rogue game, the classic manual provides the basic instructions for the game:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-documentation" + }, + { + "text": "Link to Classic Rogue Manual Here", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-documentation" + }, + { + "text": "Link to Classic Rogue Manual Here", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-documentation" + }, + { + "text": "After reading the linked manual, there are additional aspects to keep in mind for Komodo's unique implementation.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-documentation" + }, + { + "text": "Gameplay Modes", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "Komodo's Rogue features two different game modes. There is one mode for single-player gameplay, where the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "maxplayer", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": " value is set to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": ", and one mode for multi-player gameplay, where the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "maxplayer", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": " value is greater than ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "gameplay-modes" + }, + { + "text": "Single-Player Mode", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "The single-player mode is more limited in nature. In general, this mode is for practicing or farming purposes.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "There are no time limits.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "As soon as the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "register_txid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": " is confirmed the player may begin to play.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "When concluding the game, the conversion of in-game gold to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": " coins is halved. See the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": " methods for further details.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "bailout", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "single-player-mode" + }, + { + "text": "Multi-Player Mode", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "If more than one player is allowed in the game parameters, the game goes into \"Highlander\" mode. In this mode, there can be only one winner of each game. The winner is either the last player standing, or the first player to retrieve the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " and successfully exit the dungeon.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "Multi-player mode also adds a time limit that is based on the frequency of keystrokes. So long as the players are frequently entering commands, the time limit will expire in approximately one hour. If players are not frequently entering keystrokes, the time limit can vary.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "There is a waiting period after the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "gametxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " is confirmed. This ensures that no player receives an unfair advantage via advanced knowledge of the start time. The delay is ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "5", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " blocks. On a default Smart Chain, this creates a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "5", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " minute wait period. Once the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "5", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " blocks are mined, the Smart Chain automatically reveals a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " that is created using blockchain-based provable randomization. The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " provides the basis for level-design generation. After the level is generated, the players may begin to play.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "Due to the fact that the entropy (based on the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "seed", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": ") was the same for both players during level generation, both players will begin at dungeon-level ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": ". However, the generation of levels greater than ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " take into account the gameplay of the characters, and therefore the level designs will be different for each player.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "There are two methods for winning the game. The most direct way to win the game is to obtain the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "amulet", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " and return from the dungeon. Alternatively, the player also may win by having the last surviving character. The winner receives all of the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "buyin", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " coins that were originally contributed, as well as an increased conversion ratio for their in-game gold to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " reward.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "See the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": " method for further details.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "multi-player-mode" + }, + { + "text": "The Mechanics of Saving, Trading, and Reusing Characters", + "tagName": "h3", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "Due to the nature of saving and reusing characters, the Komodo implementation\nof Rogue changes the manner in which the user saves characters. Instead of\ntyping ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "s", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " on the keyboard, type ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "Q + y + Enter", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": ", then execute the\n", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " method to conclude the game.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "bailout", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "If a player successfully uses either the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " method to conclude a game, the player may save their character, items, and achieved characteristics. They also convert the character's in-game gold to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " coins. The ratio of conversion depends upon the game conditions; see the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "highlander", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": " methods for further details.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "highlander", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "bailout", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "the-mechanics-of-saving-trading-and-reusing-characters" + }, + { + "text": "Recalling an Existing Character", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "When either of these methods are executed, the returned response includes a ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " transaction id. The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " represents the state of this character at the completion of the game. It is used as an argument for the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "register", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " method when recalling the character, items, and achieved characteristics into a future game.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "register", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " value changes with each game, and therefore only the most recent ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " for a character should be used. To see a complete list of current ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " values belonging to the user's ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": ", use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "When the user registers an existing character, the game dungeon's difficulty begins at level ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "1", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": ", and the character has no gold (as it was converted to ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "ROGUE", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " coins). Also, even if the character has armor and a wielded weapon in their item list, these items are not equipped by default. The player must equip them at the start of the game by typing the letters ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "w", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " for weapon and ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "W", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " for armor.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "One gameplay element that the Komodo team has changed from classic Rogue is the ability to scale the amount of inventory the character may carry according to the character's strength. The formula is as follows:", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "The highest ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "max inventory", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " value is ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "23", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " unique letters. Throwable-object packages count as a single item.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "If the user bails out of a game while holding more items than they are allowed to carry, the game will automatically flush items from the character's inventory as a part of the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "bailout", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "recalling-an-existing-character" + }, + { + "text": "Trading an Existing Character", + "tagName": "h4", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "A character that survived a game is also a non-fungible asset and can be traded on the blockchain. When trading a character, the user does not use the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " value. Rather, the user employs the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " value. This ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " is used in coordination with the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "Tokens Antara Module", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " module for on-chain trading.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "Tokens Antara Module", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " can be found by using the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " method and submitting the known ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "playertxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " as an argument. For more information, see the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "playerinfo", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "playerinfo", + "tagName": "a", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " is created at the character's initial creation and does not change throughout the character's life. When the character dies, the ", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": "tokentxid", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + }, + { + "text": " is sent to a burn address, making the character permanently unplayable.", + "tagName": "p", + "path": "antara/tutorials/rogue-module-tutorial", + "closestElementReference": "trading-an-existing-character" + } + ], + "antara/tutorials/test-use-write-integrate-antara": [ + { + "text": "Using the Contracts on a Komodo based Blockchain", + "tagName": "h1", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "A high level overview of the Komodo Custom Consensus Framework: ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "How to write UTXO based CryptoConditions contracts for KMD chains - by jl777", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "How to write UTXO based CryptoConditions contracts for KMD chains - by jl777", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "To use the contracts on the blockchain, the start command of the chain should contain the parameter ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "-ac-cc", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": " .", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "A brief overview of the ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "-ac-cc", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": " parameter:", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "A chain with -ac_cc=N with N 0, will have CC active", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "If N is 1, then it just enables CC", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "if N is ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": ">= 2", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": " and ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "<= 100", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": ", it allows for non-fungible cross chain contracts within all the chains with the same N value", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "if N >= 101, then it forms a cluster of all the chains with the same N value where the base tokens in all the chains in that cluster are fungible via the burn protocol", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "using-the-contracts-on-a-komodo-based-blockchain" + }, + { + "text": "To test the contracts", + "tagName": "h2", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Compile Komodo", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Compile Komodo", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Navigate to ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "src", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": " directory, start the test chain with your ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": " and issue the SmartContract RPC commands. All the instructions to get you started are below. For a more elaborate explanation on creating a new blockchain using Komodo see: ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Creating Komodo Smart Chains", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Navigate to ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "src", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": " directory, start the test chain with your ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": " and issue the SmartContract RPC commands. All the instructions to get you started are below. For a more elaborate explanation on creating a new blockchain using Komodo see: ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Creating Komodo Smart Chains", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Creating Komodo Smart Chains", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-test-the-contracts" + }, + { + "text": "Build Komodo", + "tagName": "h2", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "build-komodo" + }, + { + "text": "Start the Test Chain", + "tagName": "h2", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "start-the-test-chain" + }, + { + "text": "Relevant info:", + "tagName": "h3", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "Source repo: ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": " (Latest code on cc and new contracts are being added to the ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "FSM", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": " branch.)", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "Source repo: ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": " (Latest code on cc and new contracts are being added to the ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "FSM", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": " branch.)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "Source directory: ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo:src/cc@FSM", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "Source directory: ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo:src/cc@FSM", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "jl777/komodo:src/cc@FSM", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "relevant-info" + }, + { + "text": "Useful Links:", + "tagName": "h3", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "(Going through the comments in the following files gives a pretty good overview)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/assets.cpp@FSM (raw)", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/assets.cpp@FSM (raw)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/assets.cpp@FSM (raw)", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/dice.cpp@FSM (raw)", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/dice.cpp@FSM (raw)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/dice.cpp@FSM (raw)", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/rewards.cpp@FSM (raw)", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/rewards.cpp@FSM (raw)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/rewards.cpp@FSM (raw)", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/CCtokens.cpp@FSM (raw)", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/CCtokens.cpp@FSM (raw)", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "jl777/komodo:src/cc/CCtokens.cpp@FSM (raw)", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "useful-links" + }, + { + "text": "To add a new contract", + "tagName": "h2", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add EVAL_CODE to eval.h", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add EVAL_CODE to eval.h", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Initialize the variables in the CCinit function below", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Initialize the variables in the CCinit function below", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Write a Validate function to reject any unsanctioned usage of vin/vout", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Write a Validate function to reject any unsanctioned usage of vin/vout", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Make helper functions to create rawtx for RPC functions", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Make helper functions to create rawtx for RPC functions", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add rpc calls to rpcserver.cpp and rpcserver.h and in one of the rpc.cpp files", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add rpc calls to rpcserver.cpp and rpcserver.h and in one of the rpc.cpp files", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add the new .cpp files to src/Makefile.am", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "Add the new .cpp files to src/Makefile.am", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "1, 2 and 6 are not even coding tasks. 4 and 5 are non-consensus time, mostly dealing with JSON. 3 is the main work needed, which makes sense as a different 3 is what makes it a different contract. A lot of a contracts can use slightly modified functions from the other CC contracts. So the best way to do a new one would be to pick the one that is closest to what you want and start morphing it.", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "to-add-a-new-contract" + }, + { + "text": "General guidance on reporting issues on discord (Regarding CryptoConditions and SmartContract development)", + "tagName": "h2", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the specific chain parameters so anyone can connect to it", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the specific chain parameters so anyone can connect to it", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the ", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "EXACT", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": " rpc call and parameters you used", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the ", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "EXACT", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": " rpc call and parameters you used", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the most important!", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": " : the raw tx generated", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "the most important!", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": " : the raw tx generated", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "clear description of why you think it is a bug. for now you need to look at the raw tx details to make sure all vins are valid, signed and all vouts are sane.", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "clear description of why you think it is a bug. for now you need to look at the raw tx details to make sure all vins are valid, signed and all vouts are sane.", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "Please don't post things like \"I tried X and it didnt work\" as that does not help at all at this stage. These are raw transaction level things and until everything works, things won't work at the higher level.", + "tagName": "li", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "Please don't post things like \"I tried X and it didnt work\" as that does not help at all at this stage. These are raw transaction level things and until everything works, things won't work at the higher level.", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "Discord Invite", + "tagName": "p", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + }, + { + "text": "Discord Invite", + "tagName": "a", + "path": "antara/tutorials/test-use-write-integrate-antara", + "closestElementReference": "general-guidance-on-reporting-issues-on-discord-regarding-crypto-conditions-and-smart-contract-development" + } + ], + "antara/tutorials/understanding-antara-addresses": [ + { + "text": "Understanding Antara Addresses", + "tagName": "h1", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "The method of transferring module-related assets is often slightly different than the typical Smart Chain transaction.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "When making a transaction on a Smart Chain, you normally deal with a sending address and a receiving address. To move coins, you might use methods such as ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": " or ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": ".", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "When using Antara, however, there are a few new types of addresses to keep in mind when working with transactions. It is not necessary to fully understand all of the address types; only a general understanding is needed.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "understanding-antara-addresses" + }, + { + "text": "Creating and Launching With a Pubkey", + "tagName": "h2", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "The first address you must understand is the pubkey. Any user using an Antara based module must have a pubkey indicated in their daemon. This forms the basis for all addresses related to various modules.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "To get a pubkey, launch the chain with the normal launch parameters and execute the ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": " API command.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "getnewaddress", + "tagName": "a", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "This will return a new address:", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "Now, execute the ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": " command.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "This will return a json object with many properties. In the properties you will see:", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "This is will be your module pubkey; you must now indicate it to the daemon.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "To do this, first stop the daemon.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "Then relaunch your daemon using the required parameters, and make sure to include your pubkey as an additional parameter. For example:", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "creating-and-launching-with-a-pubkey" + }, + { + "text": "CC Addresses", + "tagName": "h4", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "The daemon will now use the above pubkey as the basis for all addresses used for the different modules.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "To discover the addresses the pubkey provides, you will typically use an ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "address", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " related API command from the list of available commands of your chosen module. For example, the ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "faucetaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " command would return a response like this:", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "faucetaddress", + "tagName": "a", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "FaucetCCaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " is the address that corresponds to the default Faucet module.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "myCCaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " is the address your node uses for interacting with the Faucet module. This is the user address for managing funds in an Antara module.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "The ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "myaddress", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " property is the normal address that corresponds to your pubkey. This is the user's address for the Smart Chain's main coin.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "For readers who are curious, the letters \"CC\" are an abbreviation of an internal technology that all Antara modules use while creating unique addresses.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "The use-cases of the different addresses depends on the functionality in question, and the desired outcome.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "Also, each module has its own API commands for moving coins or tokens. For example, the Tokens module offers the ", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "tokentransfer", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": " method.", + "tagName": "p", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + }, + { + "text": "tokentransfer", + "tagName": "a", + "path": "antara/tutorials/understanding-antara-addresses", + "closestElementReference": "cc-addresses" + } + ], + "historical/cc-jl/chapter00": [ + { + "text": "Chapter 00 - Bitcoin Protocol Basics", + "tagName": "h1", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "There are many aspects of the bitcoin protocol that isnt needed to understand the CC contracts dependence on it. Such details will not be discussed. The primary aspect is the utxo, unspent transaction output. Just a fancy name for ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "txid/vout", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": ", so when you sendtoaddress some coins, it creates a ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": " and the first output is ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "vout.0", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": ", combine it and ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "txid/0", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": " is a specific utxo.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "Of course, to understand even this level of detail requires that you understand what a ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": " is, but there are plenty of reference materials on that. It is basically the 64 char long set of letters and numbers that you get when you send funds.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "Implicit with the utxo is that it prevents double spends. Once you spend a utxo, you cant spend it again. This is quite an important characteristic and while advanced readers will point out chain reorgs can allow a double spend, we will not confuse the issue with such details. The important thing is that given a blockchain at a specific height's blockhash, you can know if a ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "txid/vout", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": " has been spent or not.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "There are also the transactions that are in memory waiting to be mined, the mempool. And it is possible for the utxo to be spent by a ", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": " in the mempool. However since it isnt confirmed yet, it is still unspent at the current height, even if we are pretty sure it will be spent in the next block.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "A useful example is to think about a queue of people lined up to get into an event. They need to have a valid ticket and also to get into the queue. After some time passes, they get their ticket stamped and allowed into the event.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + }, + { + "text": "In the utxo case, the ticket is the spending transaction and the event is the confirmed blockchain. The queue is the mempool.", + "tagName": "p", + "path": "historical/cc-jl/chapter00", + "closestElementReference": "chapter-00-bitcoin-protocol-basics" + } + ], + "historical/cc-jl/chapter01": [ + { + "text": "Chapter 01 - OP_CHECKCRYPTOCONDITION", + "tagName": "h1", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "In the prior chapter the utxo was explained. However, the specific mechanism used to send a payment was not explained. Contrary to what most people might think, on the blockchain there are not entries that say \"pay X amount to address\". Instead what exists is a bitcoin script that must be satisfied in order for the funds to be able to be spent.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "Originally, there was the pay to pubkey script:", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "About as simple of a payment script that you can get. Basically the pubkey's signature is checked and if it is valid, you get to spend it. One problem satoshi realized was that with Quantum Computers such payment scripts are vulnerable! So, he made a way to have a cold address, ie. an address whose pubkey isnt known. At least it isnt known until it is spent, so it is only Quantum resistant prior to the first spend. This line of reasoning is why we have one time use addresses and a new change address for each transaction. Maybe in some ways, this is too forward thinking as it makes things a lot more confusing to use and easier to lose track of all the required private keys.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "However, it is here to stay and its script is:", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "With this, the blockchain has what maps to \"pay to address\", just that the address is actually a base58 encoded (prefix + pubkeyhash). Hey, if it wasnt complicated, it would be easy!", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "In order to spend a ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pkh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " (pay to pubkey hash) utxo, you need to divulge the pubkey in addition to having a valid signature. After the first spend from an address, its security is degraded to ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pk", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " (pay to pubkey) as its pubkey is now known. The net result is that each reused address takes 25 extra bytes on the blockchain, and that is why for addresses that are expected to be reused, I just use the p2pk script.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "Originally, bitcoin allowed any type of script opcodes to be used directly. The problem was some of them caused problems and satoshi decided to disable them and only allow standard forms of payments. Thus the ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pk", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pkh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " became 99%+ of bitcoin transactions. However, going from having a fully scriptable language that can create countless payment scripts (and bugs!), to having just 2 . . . well it was a \"short term\" limitation. It did last for some years but eventually a compromise ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2sh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " script was allowed to be standard. This is a pay to script hash, so it can have a standard format as the normal ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pkh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": ", but have infinitely more flexibility.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "Wait, something is wrong! If it was just that, then anybody that found out what the required script (called redeemscript) was, they could just spend it. I forgot to say that the redeemscript is then used to determine if the payment can be spent or not. So you can have a normal ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pk", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " or ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2pkh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " redeemscript inside a ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2sh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " script.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "OK, I know that just got really confusing. Let us have a more clear example:", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2sh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " becomes the hash of the redeem script + the compares", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "So to spend it, you need to divulge the redeemscript, which in turn requires you to divulge the pubkey. Put it all together and the ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2sh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " mechanism verifies you not only had the correct redeemscript by comparing its hash, but that when the redeemscript is run, it is satisfied. In this case, that the pubkey's signature was valid.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "If you are still following, there is some good news! ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " scripts are actually simpler than ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "p2sh", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " scripts in some sense as there isnt this extra level of script inside a scripthash. ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "@libscott", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " implemented the addition of ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " to the set of bitcoin opcodes and what it does is makes sure that a CryptoConditions script is properly signed.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "@libscott", + "tagName": "a", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "Which gets us to the CryptoConditions specification, which is a monster of a ", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "IETF (Internet standards)", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": " draft and has hundred(s) of pages of specification. I am sure you are happy to know that you dont really need to know about it much at all! Just know that you can create all sorts of cryptoconditions and its binary encoding can be used in a bitcoin utxo. If the standard CC contracts dont have the power you need, it is always possible to expand on it. So far, most all the CC contracts only need the power of a 1of1 CC script, which is 1 signature combined with custom constraints. The realtime payment channels CC is the only one of the reference CC contracts so far that didnt fit into this model, it needed a 1of2 CC script.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "IETF (Internet standards)", + "tagName": "a", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + }, + { + "text": "The best part is that all these opcode level things are not needed at all. I just wanted to explain it for those that need to know all the details of everything.", + "tagName": "p", + "path": "historical/cc-jl/chapter01", + "closestElementReference": "chapter-01-op-checkcryptocondition" + } + ], + "historical/cc-jl/chapter02": [ + { + "text": "Chapter 02 - CC Contract Basics", + "tagName": "h1", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "Each CC contract has an eval code, this is just an arbitrary number that is associated with a specific CC contract. The details about a specific CC contract are all determined by the validation logic, that is ultimately what implements a CC contract.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "However, unlike the normal bitcoin payments, where it is validated with only information in the transaction, a CC contract has the power to do pretty much anything. It has full access to the blockchain and even the mempool, though using mempool information is inherently more risky and needs to be done carefully or for exclusions, rather than inclusions.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "However, this is the CC contract basics chapter, so let us ignore mempool issues and deal with just the basics. Fundamentally there is no structure for ", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": " serialized scripts, but if you are like me, you want to avoid having to read and understand a 1000 page IETF standard. What we really want to do is have a logical way to make a new contract and have it be able to be coded and debugged in an efficient way.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "That means to just follow a known working template and only changing the things where the existing templates are not sufficient, ie. the core differentiator of your CC contract.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "In the ", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "~/komodo/src/cc/eval.h", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": " file all the eval codes are defined, currently:", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "~/komodo/src/cc/eval.h", + "tagName": "a", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "Ultimately, we will probably end up with all 256 eval codes used, for now there is plenty of room. I imagined that similar to my coins repo, we can end up with a much larger than 256 number of CC contracts and you select the 256 that you want active for your blockchain. That does mean any specific chain will be limited to \"only\" having 256 contracts. Since there seems to be so few actually useful contracts so far, this limit seems to be sufficient. I am told that the evalcode can be of any length, but the current CC contracts assumes it is one byte.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "The simplest CC script would be one that requires a signature from a pubkey along with a CC validation. This is the equivalent of the pay to pubkey bitcoin script and is what most of the initial CC contracts use. Only the channels one needed more than this and it will be explained in its chapter.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "We end up with CC scripts of the form (", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": ") + (", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": ") + (other stuff), dont worry about the other stuff, it is automatically handled with some handy internal functions. The important thing to note is that each CC contract of this form needs a single pubkey and eval code and from that we get the CC script. Using the standard bitcoin's \"hash and make an address from it\" method, this means that the same pubkey will generate a different address for each different CC contract!", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "This is an important point, so I will say it in a different way. In bitcoin there used to be uncompressed pubkeys which had both the right and left half combined, into a giant 64 byte pubkey. But since you can derive one from the other, compressed pubkeys became the standard, that is why you have bitcoin pubkeys of 33 bytes instead of 65 bytes. There is a 02, 03 or 04 prefix, to mean odd or even or big pubkey. This means there are two different pubkeys for each privkey, the compressed and uncompressed. And in fact you can have two different bitcoin protocol addresses that are spendable by the same privkey. If you use some paper wallet generators, you might have noticed this.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "CC contracts are like that, where each pubkey gets a different address for each evalcode. It is the same pubkey, just different address due to the actual script having a different evalcode, it ends up with a different hash and thus a different address. Now funds send to a specific CC address is only accessible by that CC contract and must follow the rules of that contract.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "I also added another very useful feature where the convention is for each CC contract to have a special address that is known to all, including its private key. Before you panic about publishing the private key, remember that to spend a CC output, you need to properly sign it AND satisfy all the rules. By everyone having the privkey for the CC contract, everybody can do the \"properly sign\" part, but they still need to follow the rest of the rules.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + }, + { + "text": "From a user's perspective, there is the global CC address for a CC contract and some contracts also use the user pubkey's CC address. Having a pair of new addresses for each contract can get a bit confusing at first, but eventually we will get easy to use GUI that will make it all easy to use.", + "tagName": "p", + "path": "historical/cc-jl/chapter02", + "closestElementReference": "chapter-02-cc-contract-basics" + } + ], + "historical/cc-jl/chapter03": [ + { + "text": "Chapter 03 - CC vins and vouts", + "tagName": "h1", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "You might want to review the bitcoin basics and other materials to refresh about how bitcoin outputs become inputs. It is a bit complicated, but ultimately it is about one specific amount of coins that are spent, once spent it is combined with the other coins that are also spent in that transaction and then various outputs are created.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "That is a 3 input, 2 output transaction. The value from the three inputs are combined and then split into vout0 and vout1, each of the vouts gets a spend script that must be satisfied to be able to be spent. Which means for all three of out vins, all the requirements (as specified in the output that created them) are satisfied.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "Yes, I know this is a bit too complicated without a nice chart, so we will hope that a nice chart is added here:", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "Out of all the aspects of the CC contracts, the flexibility that different vins and vouts created was the biggest surprise. When I started writing the first of these a month ago, I had no idea the power inherent in the smart utxo contracts. I was just happy to have a way to lock funds and release them upon some specific conditions.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "After the assets/tokens CC contract, I realized that it was just a tip of the iceberg. I knew it was Turing complete, but after all these years of restricted bitcoin script, to have the full power of any arbitrary algorithm, it was eye opening. Years of writing blockchain code and having really bad consequences with every bug naturally makes you gun shy about doing aggressive things at the consensus level. And that is the way it should be, if not very careful, some really bad things can and do happen. The foundation of building on top of the existing (well tested and reliable) utxo system is what makes the CC contracts less likely for the monster bugs. That being said, lack of validation can easily allow an improperly coded CC contract to have its funds drained.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "The CC contract breaks out of the standard limitations of a bitcoin transaction. Already, what I wrote explains the reason, but it was not obvious even to me at first, so likely you might have missed it too. If you are wondering what on earth I am talking about, THAT is what I am talking about!", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "To recap, we have now a new standard bitcoin output type called a CC output. Further, there can be up to 256 different types of CC outputs active on any given blockchain. We also know that to spend any output, you need to satisfy its spending script, which in our case is the signature and whatever constraints the CC validation imposes. We also have the convention of a globally shared keypair, which gives us a general CC address that can have funds sent to it, along with a user pubkey specific CC address.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "Let us go back to the 3+2 transaction example:", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "Given the prior paragraph, try to imagine the possibilities the simple 3+2 transaction can be. Each vin could be a normal vin, from the global contract address, the user's CC address and the vouts can also have this range. Theoretically, there can be 257 * 257 * 257 * 257 * 257 forms of a 3+2 transaction!", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "In reality, we really dont want that much degrees of freedom as it will ensure a large degree of bugs! So we need to reduce things to a more manageable level where there are at most 3 types for each, and preferably just 1 type. That will make the job of validating it much simpler and simple is better as long as we dont sacrifice the power. We dont.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + }, + { + "text": "Ultimately the CC contract is all about how it constrains its inputs, but before it can constrain them, they need to be created as outputs. More about this in the CC validation chapter.", + "tagName": "p", + "path": "historical/cc-jl/chapter03", + "closestElementReference": "chapter-03-cc-vins-and-vouts" + } + ], + "historical/cc-jl/chapter04": [ + { + "text": "Chapter 04 - CC RPC Extensions", + "tagName": "h1", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Currently, CC contracts need to be integrated at the source level. This limits who is able to create and add new CC contracts, which at first is good, but eventually will be a too strict limitation. The runtime bindings chapter will touch on how to break out of the source based limitation, but there is another key interface level, the RPC.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "By convention, each CC contract adds an associated set of rpc calls to the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ". This not only simplifies the creation of the CC contract transactions, it further will allow dapps to be created just via rpc calls. That will require there being enough foundational CC contracts already in place. As we find new usecases that cannot be implemented via rpc, then a new CC contract is made that can handle that (and more) and the power of the rpc level increases. This is a long term process.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "The typical rpc calls that are added ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "address", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " return the various special CC addresses, the list of CC contract instances and info about each CC contract instance. Along with an rpc that creates a CC instance and of course the calls to invoke a CC instance.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "The role of the rpc calls are to create properly signed ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rawtransactions", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " that are ready for broadcasting. This then allows using only the rpc calls to not only invoke but to create a specific instance of a CC. The faucet contract is special in that it only has a single instance, so some of these rpc calls are skipped.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "So, there is no MUSTHAVE rpc calls, just a sane convention to follow so it fits into the general pattern.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "One thing that I forgot to describe was how to create a special CC address and even though this is not really an rpc issue, it is kind of separate from the core CC functions, so I will show how to do it here:", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Above are the specifics for the faucet CC, but each one has the equivalent in ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCcustom.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ". At the bottom of the file is a big switch statement where these values are copied into an in memory data structure for each CC type. This allows all the CC codebase to access these special addresses in a standard way.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCcustom.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "In order to get the above values, follow these steps:", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "use ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "getnewaddress", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " to get a new address and put that in the ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Normaladdr = \"\";", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " line", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "use ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " to get a new address and put that in the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Normaladdr = \"\";", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " line", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "use ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "validateaddress", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " to get the pubkey, which is put into the ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "hexstr[67] = \"\";", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " line", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "use ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " to get the pubkey, which is put into the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "hexstr[67] = \"\";", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " line", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "stop the daemon [", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "komodod", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "] and start with ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "-pubkey=", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and do a ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "address", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " rpc call. In the console you will get a printout of the hex for the privkey, assuming the if ( 0 ) in ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Myprivkey()", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " is enabled (", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCutils.cpp", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ")", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "stop the daemon [", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "] and start with ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "-pubkey=", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and do a ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "address", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " rpc call. In the console you will get a printout of the hex for the privkey, assuming the if ( 0 ) in ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Myprivkey()", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " is enabled (", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCutils.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": ")", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCutils.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "update the ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCaddress", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "privkey", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and dont forget to change the ", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "-pubkey=", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " parameter", + "tagName": "li", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "update the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "CCaddress", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "privkey", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and dont forget to change the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "-pubkey=", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " parameter", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "The first rpc command to add is ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "address", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and to do that, add a line to ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcserver.h", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " and update the commands array in ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcserver.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcserver.h", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcserver.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "In the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcwallet.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " file you will find the actual rpc functions, find one of the ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "address", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": " ones, copy paste, change the eval code to your eval code and customize the function. Oh, and dont forget to add an entry into ", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "eval.h", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "rpcwallet.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "eval.h", + "tagName": "a", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + }, + { + "text": "Now you have made your own CC contract, but it wont link as you still need to implement the actual functions of it. This will be covered in the following chapters.", + "tagName": "p", + "path": "historical/cc-jl/chapter04", + "closestElementReference": "chapter-04-cc-rpc-extensions" + } + ], + "historical/cc-jl/chapter05": [ + { + "text": "Chapter 05 - CC Validation", + "tagName": "h1", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "CC validation is what its all about, not the \"hokey pokey\"!", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "Each CC must have its own validation function and when the blockchain is validating a transaction, it will call the CC validation code. It is totally up to the CC validation whether to validate it or not.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "Any set of rules that you can think of and implement can be part of the validation. Make sure that there is no ambiguity! Make sure that all transactions that should be rejected are in fact rejected.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "Also, make sure any rpc calls that create a CC transaction dont create anything that doesnt validate.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "Really, that is all that needs to be said about validation that is generic, as it is just a concept and gets a dedicated function to determine if a transaction is valid or not.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "For most of the initial CC contracts, I made a function code for various functions of the CC contract and add that along with the creation txid. That enables the validation of the transactions much easier, as the required data is right there in the opreturn.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + }, + { + "text": "You do need to be careful not to cause a deadlock as the CC validation code is called while already locked in the main loop of the bitcoin protocol. As long as the provided CC contracts are used as models, you should keep out of deadlock troubles.", + "tagName": "p", + "path": "historical/cc-jl/chapter05", + "closestElementReference": "chapter-05-cc-validation" + } + ], + "historical/cc-jl/chapter06": [ + { + "text": "Chapter 06 - Faucet Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "Finally, we are ready for the first actual example of a CC contract. The faucet. This is a very simple contract and it ran into some interesting bugs in the first incarnation.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "The code in ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "~/komodo/src/cc/faucet.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " is the ultimate documentation for it with all the details, so I will just address the conceptual issues here.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "~/komodo/src/cc/faucet.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "The idea is that people send funds to the faucet by locking it in faucet's global CC address and anybody is allowed to create a faucetget transaction that spends it.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "There are only 7 functions in ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucet.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": ", a bit over 200 lines including comments. The first three are for validation, the last four for the rpc calls to use.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucet.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "int64_t IsFaucetvout(struct CCcontract_info *cp,const CTransaction& tx,int32_t v)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "bool FaucetExactAmounts(struct CCcontract_info ", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "cp,Eval", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " eval,const CTransaction &tx,int32_t minage,uint64_t txfee)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "bool FaucetValidate(struct CCcontract_info ", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "cp,Eval", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " eval,const CTransaction &tx)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "int64_t AddFaucetInputs(struct CCcontract_infoCC_info *cp,CMutableTransaction &mtx,CPubKey pk,int64_t total,int32_t maxinputs)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "std::string FaucetGet(uint64_t txfee)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "std::string FaucetFund(uint64_t txfee,int64_t funds)", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "UniValue FaucetInfo()", + "tagName": "li", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "Functions in ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "rpcwallet", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " implement:", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetaddress", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " fully implemented in ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "rpcwallet.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "rpcwallet.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " calls ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "FaucetFund", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " calls ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "FaucetGet", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetinfo", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " calls ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "FaucetInfo", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "Now you might not be a programmer, but I hope you are able to understand the above sequence. user types in a cli call, ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " processes it by calling the rpc function, which in turn calls the function inside ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucet.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucet.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "No magic, just simple conversion of a user command line call that runs code inside the komodod. Both the ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " create properly signed rawtransaction that is ready to be broadcast to the network using the standard ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " rpc. It doesnt automatically do this to allow the GUI to have a confirmation step with all the details before doing an irrevocable CC contract transaction.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetfund", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " allows anybody to add funds to the faucet\n", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " allows anybody to get 0.1 coins from the faucet as long as they dont violate the rules.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "And we come to what it is all about. The rules of the faucet. Initially it was much less strict and that allowed it to be drained slowly, but automatically and it prevented most from being able to use the faucet.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "To make it much harder to leech, it was made so each ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " returned only 0.1 coins (down from 1.0) so it was worth 90% less. It was also made so that it had to be to a fresh address with less than 3 transactions. Finally each txid was constrained to start and end with 00! This is a cool trick to force usage of precious CPU time (20 to 60 seconds depending on system) to generate a valid txid. Like PoW mining for the txid and I expect other CC contracts to use a similar mechanism if they want to rate limit usage.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "Combined, it became such a pain to get 0.1 coins, the faucet leeching problem was solved. It might not seem like too much trouble to change an address to get another 0.1 coins, but the way things are setup you need to launch the ", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": "-pubkey=", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + }, + { + "text": " to change the pubkey that is active for a node. That means to change the pubkey being used, the komodod needs to be restarted and this creates a lot of issues for any automation trying to do this. Combined with the PoW required, only when 0.1 coins becomes worth a significant effort will faucet leeching return. In that case, the PoW requirement can be increased and coin amount decreased, likely with a faucet2 CC contract as I dont expect many such variations to be needed.", + "tagName": "p", + "path": "historical/cc-jl/chapter06", + "closestElementReference": "chapter-06-faucet-example" + } + ], + "historical/cc-jl/chapter07": [ + { + "text": "Chapter 07 - Rewards Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "The next CC contract in complexity is the rewards CC contract. This is designed to capture what most people like about masternodes, without anything else, ie. the rewards!", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "The idea is to allow people to lock funds for some amount of time and get an extra reward. We also want to support having more than one rewards plan at a time and to allow customization of plan details. One twist that makes it a bit unexpected is that anybody should be able to unlock the funds that were locked, as long as it ends up in the locking address. The reason for this is that SPV servers want to be supported and while locking can be done via normal ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ", it requires a native node to do the unlocking. By allowing anybody to be able to unlock, then there can be a special node that unlocks all locked funds when they are ready. This way, from the user's point of view, they lock the funds and after it is matured, it reappears in their wallet.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "The above requirements leads us to using the global CC address for the rewards contract to lock the funds in. That allows anybody to properly sign the unlock, but of course that is not enough, we need to make sure they are following all the unlock requirements. Primarily that the funds go back to the locking address.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "The four aspects of the rewards plan that are customizable are:\n", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "APR", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "minseconds", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "maxseconds", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "mindeposit", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "This allows each plan to set a different APR (up to 25%, anything above is becoming silly), the minimum time funds must be locked, the maximum time they are earning rewards and the minimum that can be deposited.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "So the ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " that creates the rewards plan will have these attributes and it is put into the ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " data. All the other calls will reference the plan creation ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " and inherit these parameters from the creation ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ". This means it is an important validation to do, to make sure the funding ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " is a valid funding ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "Since it is possible that the initial funding will be used up, there needs to be a way for more funding to be added to the rewards plan.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "Having multiple possible rewards plans means it is useful to have rpc calls to get information about them. Hence: ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "rewardslist", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " returns the list of rewards creation ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "txids", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "rewardsinfo ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " returns the details about a specific rewards plan.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "A locking transaction sends funds to the rewards CC address, along with a normal (small) ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": " to the address that the unlock should go to. This allows the validation of the proper unlocking. Also, it is important to make sure only locking transactions are able to be unlocked. Additionally, the minimum time needs to elapse before unlocking is allowed.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "All of these things are done in ", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "rewards.cpp", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": ", with the validation code being about 200 lines and a total of 700 lines or so. Bigger than faucet, but most of the code is the non-consensus code to create the proper transactions. In order to simplify the validation, specific vin and vout positions are designated to have specific required values:", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "rewards.cpp", + "tagName": "a", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "chapter-07-rewards-example" + }, + { + "text": "createfunding", + "tagName": "h2", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "createfunding" + }, + { + "text": "addfunding", + "tagName": "h2", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "addfunding" + }, + { + "text": "lock", + "tagName": "h2", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "lock" + }, + { + "text": "unlock", + "tagName": "h2", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "unlock" + }, + { + "text": "It is recommended to create such a vin/vout allocation for each CC contract to make sure that the rpc calls that create the transaction and the validation code have a specific set of constraints that can be checked for.", + "tagName": "p", + "path": "historical/cc-jl/chapter07", + "closestElementReference": "unlock" + } + ], + "historical/cc-jl/chapter08": [ + { + "text": "Chapter 08 - Assets Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "In some respects the assets CC is the most complex, it was actually the first one that I coded. It is however using a simple model, even for the DEX functions, so while it is quite involved, it does not have the challenge/response complexity of dice.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "There are two major aspects to creating tokens. First is to create and track it, down to every specific satoshi. The second is solving how to implement DEX functions of trading assets.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "The model used is \"colored coins\". This means that the token creating txid issues the assets as denoted by all the satoshis, so locking 1 COIN issues 100 million tokens. This multiplication will allow creation of plenty of assets. We want to preserve all the tokens created across all allowed operations. The way this is achieved is that all operations attaches the token creation ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " in its ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": ", along with the specified operation.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "Ownership of tokens are represented by the colored satoshis in the CC address for the user's ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": ". This allows using the standard utxo system to automatically track ownership of the tokens. This automatic inheritance is one of the big advantages of utxo CC contracts that compensates for the slightly more work needed to implement a CC contract.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "So now we have the standard CC addresss, list and info commands that provide the CC addresses, list of all tokens and info on specific tokens and the ability to create and transfer tokens. Any amount of tokens can be created from 1 to very large numbers and using standard ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "addressbalance", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "addressutxo", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " type of commands, the details of all assets owned can be determined for a specific pubkey.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "Now we can solve the DEX part of the tokenization, which turns out to be much simpler than initially imagined. We start with bidding for a specific token. Funds for the ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "bid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " are locked into the global CC address, along with the desired token and price. This creates a ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "bid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " utxo that is able to be listed via an orderbook rpc call. To fill the ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "bid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": ", a specific ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "bid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " utxo is spent with the appropriate number of assets and change and updated price for the unfilled amount. if the entire amount is filled, then it wont appear in the orderbook anymore.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "asks", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " work by locking assets along with the required price. Partial fills can be supported and the rpc calls can mask the utxo-ness of the funds/assets needed by automatically gathering the required amount of funds to fill the specific amount.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "With calls to cancel the pending ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "bid", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": " or ", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "ask", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": ", we get a complete set of rpc calls that can support a COIN-centric DEX.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "In the future, it is expected that a token swap rpc can be supported to allow directly swapping one token for another, but at first it is expected that there wont be sufficient volumes for such token to token swaps, so it was left out of the initial implementation.", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "With just these rpc calls and associated validation, we get the ability to issue tokens and trade them on a DEX!", + "tagName": "p", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "chapter-08-assets-example" + }, + { + "text": "create", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "create" + }, + { + "text": "transfer", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "transfer" + }, + { + "text": "buyoffer", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "buyoffer" + }, + { + "text": "cancelbuy", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "cancelbuy" + }, + { + "text": "fillbuy", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "fillbuy" + }, + { + "text": "selloffer", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "selloffer" + }, + { + "text": "cancel", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "cancel" + }, + { + "text": "fillsell", + "tagName": "h2", + "path": "historical/cc-jl/chapter08", + "closestElementReference": "fillsell" + } + ], + "historical/cc-jl/chapter09": [ + { + "text": "Chapter 09 - Dice Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "The dice CC contract is actually more complex in the sequences required than the assets/tokens CC. The reason is the need for realtime response by the dealer node, but also having a way to resolve bets if the dealer node is not online. The dice CC contract shows how to build in such a challenge/response mechanism, which likely will be very useful for many other realtime interactive CC contracts.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "First, let us describe the issues that the dice CC contract needs to solve. Foremost is that it needs to be random and fair. It should also have realtime response and a fallback timeout in case the realtime response doesnt happen. As with the rewards CC contract, multiple dice plans are supported. Each plan can be customized as to the following: ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "minbet", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "maxbet", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "maxodds", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "timeoutblocks", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "This allows each plan to control the risk exposure and also advertises to everyone when dicebets expire and a timeout win can be claimed. In event the dealer node does not process a dicebet in time, in order to prevent dealer nodes from simply not responding to dicebets that they lose, a timeout must go to the dicebet player. A short timeframe means that the dealer would need to be running multiple redundant nodes to make sure they can respond in time. If the timeout is set to long, then many players would prefer to use a different dice plan with a shorter timeout.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "Now to describe how to ensure a proper random number that is fair. The method chosen was for the dealer node to create transactions with hash of their entropy in the ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ". Then the dicebet player would select a specific entropy tx and include their (unhashed) entropy to their ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ". This allows the dealer node to immediately determine if the dicebet won or lost. If the dicebet included the hash of the bettor entropy, then another step would be needed. However, doing so would allow some timeouts to end with a refund, rather than an automatic win for the dicebet player.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "One additional technique used to keep all required data on the blockchain is the dealer entropy value calculation. The vin0 txid is used as one of the ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "privkeys", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": " to calculate a shared secret and then hashed to remove links to the original ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "privkey", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": ". This method allows recreating the dealer's entropy value (by the dealer node) given the blockchain itself, which means there is no need for any local storage.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "This allows the dealer node to recreate the unhashed entropy value used and so when the dicebet transaction is seen (in the mempool!), the dealer node can immediately determine if it is a winner or a loser. This is done by creating a dealer hash vs. a bettor hash via:", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "The same values are used, but in different order. The resulting hashes are compared arithmetically for 1:1 bets and the standard industry use is used for the higher odds: ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "https://dicesites.com/provably-fair", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "https://dicesites.com/provably-fair", + "tagName": "a", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "The dealer creates a dice plan and then also needs to create entropy transactions. Each win or loss that creates change also creates entropy transactions by the dealer, but timeout transactions wont as it needs to be created by the dealer node to prevent cheating. The dealer ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": " are locked into the global dice CC address, as is the dicebet transaction, which selects a specific entropy ", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "tx", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": " to \"roll\" against. Then the dicefinish process by the dealer will spend the dicebet outputs either all to itself for a loss, or the winning amount to th dice bettor's address. For dicebets that are not dicefinish'ed by the dealer, anybody is able to do a timeout completion.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "chapter-09-dice-example" + }, + { + "text": "createfunding", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "createfunding" + }, + { + "text": "addfunding (entropy)", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "addfunding-entropy" + }, + { + "text": "bet", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "bet" + }, + { + "text": "loser", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "loser" + }, + { + "text": "winner", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "winner" + }, + { + "text": "timeout", + "tagName": "h2", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + }, + { + "text": "There is an attack vector that precludes betting any large amounts, it goes as follows:", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + }, + { + "text": "Do dicebet to get the house entropy revealed", + "tagName": "li", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + }, + { + "text": "Calculate bettor entropy that would win against the house entropy", + "tagName": "li", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + }, + { + "text": "Reorg the chain and make a big bet using the winning entropy calculated in 2.", + "tagName": "li", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + }, + { + "text": "In order to mitigate this, the disclosure of the house entropy needs to be delayed beyond a reasonable reorg depth (notarization). It is recommended for production dice games with significant amounts of money to use such a delayed disclosure method.", + "tagName": "p", + "path": "historical/cc-jl/chapter09", + "closestElementReference": "timeout" + } + ], + "historical/cc-jl/chapter10": [ + { + "text": "Chapter 10 - Channels Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "It might be hard to believe, but channels CC implements an instant payment mechanism that is secured by dPoW in a way that is backward compatible with the existing wallets, explorers, etc. and channels CC does not require both nodes to be online. Its usecases are all the usecases for Lightning Network, it is just more secure, less expensive and backward compatible! The one aspect which some might consider a downside (and others another benefit) is that all payments are onchain. This means it would increase blockchain size, but the idea is for channels CC to be used on blockchains with relatively lower value coins, so a txfee of 0.0001 is not anything significant.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Very confusing blockchain reorganization issues described below. Will be confusing to most people", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "From a distance, the blockchain is a chain of blocks. One block after the next, each referencing all the prior blocks. Each block containing a group of transactions. Prior to getting into a block, the transactions are broadcast to the network and if it is valid, it enters the memory pool. Each miner then constructs a valid block from these memory pool transactions and when a transaction gets mined (confirmed), it is removed from the memory pool.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "That is the simple version!", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "The reality is quite a bit more complex, but the critical aspect is that the blockchain can (and is) reorganized as part of the expected protocol. This can happen even when there is no 51% attack happening and it is important to understand this process in detail, so here goes.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "What happens if two miners find a valid block at the same time? In this case the \"same time\" means within the time it takes for a block to propagate to the network. When a miner finds a new block, it is broadcast to the network and nodes update and start waiting for the next block. When there are two different (and valid) blocks propagating at the same time, some nodes update with one of the blocks and some the other, lets call it blockA and blockB. Now the nodes will know about both blockA and blockB, but some will consider blockA to be the chaintip and others will consider blockB to be the chaintip.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "This is where it gets confusing. Which is the correct chaintip (latest block?). It turns out that both blockA and blockB are valid at this moment in time. So there are actuall two blockchains. We have what is called a small fork! Now dont worry, the protocol will help us converge to a single chain, but in order to do that, we need the next block.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Some miners will be mining from blockA and others from blockB. In most all cases, when the next block is found, it wont be at the \"same time\" again. So we will end up with a chain that is blockA+blockA2 or blockB+blockB2. Here comes the small reorg! Let's assuming blockA2 was found before blockB2, so that means all nodes that had blockB as the chaintip now see a longer chain blockA+blockA2, which trumps blockB. When that happens, it reorgs the chain so it is on blockA+blockA2. To do this properly, all the transactions that were in blockB are put back into the mempool and blockA is added, then blockA2.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Of course, when blockB2 arrives, the nodes see it but blockB+blockB2 is the same length as blockA+blockA2, so no reorg happens. Since we postulated that blockAs arrived \"before\" blockB2, that means all nodes are on the same chaintip, including all the miners and the next block found would be blockA3, without any complications.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Believe it or not, this sort of thing is happening all the time, one all blockchains. The chaintip is a volatile thing and that is why more than one confirmation is needed to avoid the small reorgs invalidating blockhash. However, it is possible for more than just the blockhash to change. When the reorg happens, all the transactions in the block are put back into the mempool and then the new blocks are processed in order. So what happens if one of the inputs to a transaction that happened in blockB, gets spent in blockA2? Based on random utxo allocation by wallets this is not impossible if an address has a lot of activity, but if it is part of a 51% attack, then this remote chance of an utxo being spent becomes a certainity! In fact, that is what a 51% attack is.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "The attack can go much deeper than just one block. For chains that use the longest chain rule, it can go quite deep indeed. So as all the reorged transactions are put back into the mempool, we feel good that it will get confirmed again. Unfortunately, there is no enforcement of a miner needing to mine any specific transaction in the mempool. And the 51% attacker is intent on mining the transaction that spends an already spent utxo in the reorganized chain. it is called a double spend, but in the reorganized chain, it is spent only once. So it is a bit of a misnomer.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "The important thing to understand is that if any transaction has inputs that are signed by a node, it is possible when the chain reorganizes for that transaction to become invalid. This is why dPoW is important as it doesnt strictly use the longest chain rule, but rather the longest notarized chain rule. Once a block is notarized, then it will refuse to reorganize that block (or any block before). So the risk is still there, but only until a notarization. Please see more detailed information about dPoW ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "here", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Given the above, if you are wondering how can it be possible to have a mempool payment be secured by dPoW. Since it is explained how the reorgs can make valid transactions disappear, it seems unlikely any such solution is possible. However, the CC is very powerful and it can make unlikely things possible.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "The following describes how.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "We know that any payment that is utxo based can be invalidated via 51% attack, or even an unlikely but not impossible random utxo allocation from a busy wallet. Which means the payment cant be via a utxo. Since the CC system is utxo based, you might think that it means CC cant solve this. However, CC is very powerful and can implement payments that are not utxo based. But before this non-utxo payment method is explained, first we need to solve the mechanics of payment.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "At a high level, we want to lock funds into a channel, have this lock notarized so it cant be reorganized. Then payments can unlock funds. Additionally, if we are restricting the payment to just one destination, we also need a way for the sender to reclaim the unused funds. So there needs a way for a close channel notification, which when notarized allows the sender to reclaim all funds. After the channel close is notarized, then the only action possible should be a reclaim of sender funds.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "We need to assume that any payment, channel close, reclaim can be reorganized until it is notarized so great care needs to be made that a payment that is made will always be valid. With some allowances for blocks after a channelclose is notarized, we can protect the payments using the logic of \"stop accepting payments after a channelclose is seen\". It might be that a full notarization of wait time after the channelclose is notarized is needed to provide sufficient time for all the payments to be reprocessed.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Now we can finally describe the requirements for the CC. The locked funds need to be able to be spent by either the sender or receiver, the former only after sufficient time after a channelclose and the latter only after a payment is seen (not just confirmed, but just seeing it should be enough). The protection from reorgs is that the payment itself reveals a secret that is needed for the payment and only the secret would be needed, so it wont matter what utxo is used. To lock funds into a CC address that can handle this we need a 1of2 CC address, which can accept a signature from either of two pubkeys. The additional CC constraints would be enforced to make sure payments are made until the channel is closed.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "A hashchain has the nice property of being able to encode a lot of secrets with a single hash. You can hash the hash, over and over and the final hash is the public value. By revealing the next to last hash, it can be verified that it hashes to the final hash. There is a restriction that a hashchain needs to be of reasonable maximum depth, say 1000. That means each iteration of the hashchain that is revealed is worth 1/1000th the total channelfunds. In fact, if the 500th hash value is revealed, half the channelfunds are released. this allows 1/1000th resolution that can be released with a single hash value.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Now we can make the payment based on the hashvalue revealed at a specified depth before the prior released hashchain value. Both the sender and receiver can make a payment to the destination by attaching a hashchain secret. This means even if the sender's payment is reorganized, if the destination has the revealed secret, a replacement payment can be made that is valid. If the destination account isnt monitoring the blockchain, then it wont see the revealed secret, but in this case there shouldnt be value released for the payments that are reorganized. So it would be a case of no harm, no foul. In any event, all the payments end up verifiable on the blockchain to provide verifiability.", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "Payments at the speed of the mempool, protected by dPoW!", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "chapter-10-channels-example" + }, + { + "text": "The following are the rpc calls:", + "tagName": "h2", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "channelsopen:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": "Used to open channel between two pub keys (sender and receiver). Parameters: ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": "destination_pubkey", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": "total_number_of_payments", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": "payment_denomination", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsopen" + }, + { + "text": "channelspayment:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": "Sending payment to receiver. Condition is that the channel open tx is confirmed/notarised. Parameters: ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": "open_tx_id", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": "payment_amount", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": "[secret]", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": " (optional, used when receiver needs to make a payment which secret has already been revealed by sender).", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelspayment" + }, + { + "text": "channelsclose:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsclose" + }, + { + "text": "Marking channel as closed. This RPC only creates a tx which says that the channel is closed and will be used in refund RPC to withdraw funds from closed channel. This also notifies receiver that channel fund could be withdrawn, but the payment RPC is still available until all funds are withdrawn. Parameters: ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsclose" + }, + { + "text": "open_tx_id", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsclose" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsclose" + }, + { + "text": "channelsrefund:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsrefund" + }, + { + "text": "Withdrawing funds back to senders address. Refund can be issued only when channel close tx is confirmed/notarised. Parameters: ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsrefund" + }, + { + "text": "open_tx_id", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsrefund" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsrefund" + }, + { + "text": "close_tx_id", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsrefund" + }, + { + "text": "channelsinfo:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsinfo" + }, + { + "text": "Getting info about channels in which the issuer is involved, either as sender or receiver. Call without parameters give the list of available channels. Parameters: ", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsinfo" + }, + { + "text": "[open_tx_id]", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsinfo" + }, + { + "text": " (optional - used to get info about specific channel)", + "tagName": "p", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "channelsinfo" + }, + { + "text": "VIN/VOUT allocation", + "tagName": "h2", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "vin-vout-allocation" + }, + { + "text": "Open:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "open" + }, + { + "text": "Payment:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "payment" + }, + { + "text": "Close:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "close" + }, + { + "text": "Refund:", + "tagName": "h3", + "path": "historical/cc-jl/chapter10", + "closestElementReference": "refund" + } + ], + "historical/cc-jl/chapter11": [ + { + "text": "Chapter 11 - Oracles Example", + "tagName": "h1", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "Oracles CC", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": " is an example where it ended up being simpler than I first expected, but at the same time a lot more powerful. It is one of the smaller CC, but it enables creation of an arbitrary number of data markets, in a performant way.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "Oracles CC", + "tagName": "a", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "In order to gain the performance, some clever usage of special addresses was needed. It was a bit tricky to generate a special address to keep track of the latest data.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "Let's back up to the beginning. Just what is an oracle? In this context it is something that puts data that is not on the blockchain, onto the blockchain. Since everything other than the transactions and blocks are not in the blockchain, there is a very large universe of data that can be oracle-ized. It can be literally anything, from the obvious like prices to specific results relative to an arbitrary description.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "The most difficult issue about oracles is that they need to be trusted to various degree to provide accurate and timely data. The danger is that if a trusted node is used to write data to the blockchain, it creates a trust point and a single point of attack. Ultimately there is nothing that can ensure only valid data is written to the blockchain, so what is done is to reinforce good behavior via pay per datapoint. However, for critical data, higher level processing is needed that combines multiple data providers into a validated signal.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "At the oracles CC level, it is enough that there is financial incentive to provide good data. Also it is needed to allow multiple vendors for each data that is required and to enable efficient ways to update and query the data.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "chapter-11-oracles-example" + }, + { + "text": "The following are the rpc calls:", + "tagName": "h2", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "The first step is to create a specific data description with ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclescreate", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ", which also defines the format of the binary data. This creates an oracletxid, which is used in the other rpc calls. ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "name", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "description", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " are just arbitrary strings, with name preferably being a short name used to access the data. The format is a string comprised of a single character per data element:", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "For example, if the datapoint is comprised of a ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "4byte", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " timestamp and an ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "8byte", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " number the format string would be: ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "\"IL\"", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracleslist", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " displays a list of all the ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclestxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclesinfo", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " displays information about the specific ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ". Each ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " deterministically generates a marker address and a small amount is sent to that address to mark a transaction's relation to the ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracltxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "A ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "data publisher", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " needs to register a ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "datafee", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " and their ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " for a specific ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ". ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "datafee", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " needs to be at least as big as a ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "txfee", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ". Using ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclesregister", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " the current ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "datafee", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " can be updated so a ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "publisher", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " can adapt to market conditions. Once registered, subscribers can prepay for some number of datapoints to a specific ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "publisher", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " using the ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclessubscribe", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " rpc. At first, it is likely that the ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "publisher", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " would pay themselves to enable the posting of initial data points so the potential subscribers can evaluate the quality and consistency of the data.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "The one final rpc is ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclessamples", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ", which returns the most recent samples of data from a specific ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "publisher", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ". In order to have a performant solution to track all the potential data streams from all the publishers for all the ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oracletxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ", a baton ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "utxo", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " is used. This is an output sent to a specific address and expected to have just a single ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "utxo", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " at any given time to allow for direct lookup. ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "oraclessamples", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " requires a starting ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "txid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": " to use and with each datapoint having the prior ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "batontxid", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": ", there is a reverse linked list to traverse the most recent data.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "the-following-are-the-rpc-calls" + }, + { + "text": "VIN/VOUT allocation", + "tagName": "h2", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "vin-vout-allocation" + }, + { + "text": "In order to implement this, the following vin/vout contraints are used:", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "vin-vout-allocation" + }, + { + "text": "create", + "tagName": "h3", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "create" + }, + { + "text": "register", + "tagName": "h3", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "register" + }, + { + "text": "subscribe", + "tagName": "h3", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "subscribe" + }, + { + "text": "data", + "tagName": "h3", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": "The ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": "oraclesdata", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": " transaction is the most complex as it needs to find and spend the baton ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": "utxo", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": ", use the correct ", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": "datafee", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": " and spend funds from the locked subscription funds. With the above, the oracles CC is complete and allows the creations of massively parallel data streams from multiple vendors that uses free market feedback via payments, ie. poorly performing providers wont get renewals.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + }, + { + "text": "I expect that at first, the data providers will just be dapp developers deploying a working system including the required data, but its structure allows open market competition. Of course, specific dapps could restrict themselves to using only publishers from a whitelist of pubkeys. The potential usecases for oracles CC is quite varied and limited only by the imagination.", + "tagName": "p", + "path": "historical/cc-jl/chapter11", + "closestElementReference": "data" + } + ], + "historical/cc-jl/chapter12": [ + { + "text": "Chapter 12 - Limitless Possibilities", + "tagName": "h1", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + }, + { + "text": "As can be seen, CC contracts can do a wide range of things and since they are Turing complete, we know that this is true. However, what is more important is the added security gained from using a utxo based system. While in some ways it is more complex to have to deal with utxo, as can be seen by the above examples, it is either solved and made invisible at the rpc level, or actually used as part of the solution.", + "tagName": "p", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + }, + { + "text": "Being utxo based, automatically builds in a rate limit to how many tx per block a specific CC contract can do. The state advancing by one transaction at a time is another means that rate limits. Since more utxo can be made available to increase capacity, it actually offers a way for managing load.", + "tagName": "p", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + }, + { + "text": "I believe I have made one of the first operational utxo smart contracts, CC or otherwise and hope that there will be many more developers joining forces to create more foundational CC contracts. Feel free to contact me for feedback on the type of CC contract you want to make. I have not documented all my notes and it could well be I already sort of know how to implement what your want your CC contract to do. Just only so many I can actually make time to code and debug.", + "tagName": "p", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + }, + { + "text": "Our testing cycle went a lot faster than expected as the bugs found were few and far between. Considering the scope of the assets CC and the realtime response aspects of dice CC, this was quite unexpected. I can only attribute it to the fact that CC validation is just the final validation on top of all the standard bitcoin protocol validations. Not having to worry about double spends is sure a nice luxury, though dont get too complacent about chain rewrites! It is possible to wait for information to be divulged and then reorg the chain to take advantage of this knowledge in a chain which is rewound.", + "tagName": "p", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + }, + { + "text": "Yes, blockchains are complicated.", + "tagName": "p", + "path": "historical/cc-jl/chapter12", + "closestElementReference": "chapter-12-limitless-possibilities" + } + ], + "historical/cc-jl/chapter13": [ + { + "text": "Chapter 13 - Different Languages", + "tagName": "h1", + "path": "historical/cc-jl/chapter13", + "closestElementReference": "chapter-13-different-languages" + }, + { + "text": "The current codebase is integrated into the komodod codebase, which is C/C++. However, it is possible to use different languages and integrate into the C/C++ as zcash has shown by using the rust language for some parts of the ", + "tagName": "p", + "path": "historical/cc-jl/chapter13", + "closestElementReference": "chapter-13-different-languages" + }, + { + "text": "zcashd", + "tagName": "p", + "path": "historical/cc-jl/chapter13", + "closestElementReference": "chapter-13-different-languages" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/cc-jl/chapter13", + "closestElementReference": "chapter-13-different-languages" + }, + { + "text": "I think any language that is compiled and can create a linkable library while being able to call and be called by C/C++ functions can be used. If you are able to make such a language binding for a simple CC contract like faucet, this will be good for a 777 KMD bounty. Of course, you need to be the first to submit a properly working pull request.", + "tagName": "p", + "path": "historical/cc-jl/chapter13", + "closestElementReference": "chapter-13-different-languages" + } + ], + "historical/cc-jl/chapter14": [ + { + "text": "Chapter 14 - Runtime Bindings", + "tagName": "h1", + "path": "historical/cc-jl/chapter14", + "closestElementReference": "chapter-14-runtime-bindings" + }, + { + "text": "Once build time linking works, then it is one step away from being able to do runtime linking, ie. dynamically linked libraries. There will be some work required to prevent duplication of eval codes and making sure it is a valid version of the CC contract plugin, but these are issues that have been solved before and I dont see any reason they cant be solved for CC contracts.", + "tagName": "p", + "path": "historical/cc-jl/chapter14", + "closestElementReference": "chapter-14-runtime-bindings" + }, + { + "text": "This would open up the door for quite an interesting ecosystem of CC plugins that blockchains can subscribe to.", + "tagName": "p", + "path": "historical/cc-jl/chapter14", + "closestElementReference": "chapter-14-runtime-bindings" + } + ], + "historical/cc-jl/chapter15": [ + { + "text": "Chapter 15 - RPC based dAPPS", + "tagName": "h1", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + }, + { + "text": "Ultimately, I expect there to be so many new rpc calls (one set from each CC contract), that virtually any dapp can be made with rpc calls. We are just at the beginning now, but it is just a matter of time when we get there.", + "tagName": "p", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + }, + { + "text": "For now, we just need to keep listening to what the market wants as far as dapps go. Then make a new CC contract that enables doing as many of those as possible.", + "tagName": "p", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + }, + { + "text": "Repeat...", + "tagName": "p", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + }, + { + "text": "Imagine the scope that will exist after a year or two of continuous new CC contracts being created, along with all the rpc based dapps. I have seen some automatic GUI generators and it could be that for most cases, there can be a special GUI that not only create the dapp's GUI, but also all the rpc calls that are needed to make it work the way it is customized.", + "tagName": "p", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + }, + { + "text": "This codebase and tools in between the GUI and the rpc level will be a very good area for new initiatives.", + "tagName": "p", + "path": "historical/cc-jl/chapter15", + "closestElementReference": "chapter-15-rpc-based-d-apps" + } + ], + "historical/cc-jl/faq": [ + { + "text": "Frequently Asked Questions", + "tagName": "h1", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: Can I code my own smart contract in Go language and compile it to a library file (example .a file), and use that to compile with komodo source code?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: As long as it compiles to a linkable library, the language for the new contract (faucet.cpp equivalent) won't matter. It would just need to be compatible with the C/C++ stack calling convention. It is ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": " that is doing all this. So, it just seems logical to extend ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": ". It is a native contract, directly accessing the DB and datastructures.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: What exactly is the purpose of these addresses that are in the source code, with privkeys? I just imported RFYE2yL3KknWdHK6uNhvWacYsCUtwzjY3u on a test chain ATEST and spent the .0001 that was in it.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: You can only spend the normal funds in those addresses, CC outputs are protected. CC addresses map the CC scriptPubKey to an address, not the pubkey. The purpose of the addresses are to have special addresses that all nodes have the privkey for and are able to sign the CC transaction to release otherwise locked funds. i.e., there are only a limited number of ways the funds in a CC output can be spent (all these are what makes up the code of the contract) and all of them are valid so anyone on the network can sign an output when its unlock condition is satisfied.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: what's the purpose of sending coins to these addresses that are in the source code?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: Depends on the CC contract", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "for the faucet contract, the purpose is to have funds for the faucet", + "tagName": "li", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "for the assets contract, the purpose is to create colored coins", + "tagName": "li", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "for the rewards contract, the purpose is to have funds for the rewards etc.,", + "tagName": "li", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Contracts usually needs to have funds to operate.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: What is the importance of the EVAL codes like the ones in ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/eval.h@jl777#L43", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": " ?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/eval.h@jl777#L43", + "tagName": "a", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: EVAL codes in eval.h are the CC contract-type ID. e.g. \"rewards contract\" ID is 0xe5, faucet contract is 0xe4. The goal is to have building blocks of smart contracts. The smart contract \"library\" or \"catalogue\" is available to all of komodo. You pick what you need to use for your use of blockchain. If you need something different, you pick the \"smart contract of closest fit\" and make your changes. If you want, you PR it upstream back to komodo and it is included in the komodo \"catalogue of smart contracts\".", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: Can you chain together contracts like IF statements?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: As of July 2018, the contracts currently use the absolute simplest possible CryptoConditions. With these, the developer is able to do assets, rewards, faucet and more. There is no reason we can't make a contract that knows about other contracts. If there is a description of what the contract does in terms of utxo, more than likely, it can be done.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: What can a Komodo Smart Contract access on the blockchain?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: WIP I dont think any other bitcoin protocol blockchain has contracts code with full access to prior blockchain data.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: Does each additional contract require a hard fork?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: Adding support for a new contract would require a hardfork. It also depends on what you mean, how it was deployed and if any specific CC contracts were done (i.e., some types of changes to existing contracts cause hard forks and others don't). There are plans to make an enable/disable mask for specific contracts. The best ways to deal with varied activations on the different chains are being discussed. We are also working on limited life contracts, so maybe things can be setup so they expire. That would avoid the need for hardforking to change an existing one. but if a chain wants to hardfork, it can and since it is independent, it wont affect other chains in the eco-system. Isolation of code is a time tested method of limiting damage from bugs", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: How do CyptoConditions help in decision making contracts based on real world events?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: You could write a custom eval function that queries oracles and controls behavior based on that. The custom functions are part of the consensus rules as all nodes need to validate the outcomes. Writing consensus code is not for weekend coders, that only leads to trouble. We are making working templates and then allow people to tweak the parameters and not have to do the actual coding. even that is pretty dangerous. Remember that each custom eval function is embedded in a specific independent chain, being an independent chain it is independent of all the other chains. So it can destroy itself and no other chain would even know, except if you were doing atomic swaps with that chain, that is the only impact. Code isolation is key. Having a system that allows anybody to deploy code that affects everybody is pretty brave (or insane). All the chains in a cluster might be running the same contracts, so a bug in any one of them is a bug in all of them anyway or It is possible to run a different set of contracts on different chains in the cluster. So at scale there might be interaction issues if care is not taken to standardise some of the core contracts.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: If CryptoConditions is language agnostic, what stops someone from making an infinite loop? or some other code that might damage the node/network/blockchain?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: It is a native contract running at native speeds. Just like nothing prevents someone from writing an infinite loop in the coin daemon's source code, there is nothing preventing someone from writing malicious/buggy contracts. But the people running the code are responsible for either checking the code themselves if they have the capacity or have it checked by someone they trust. (i.e., just the usual OpenSource style). There will be some core contracts that are part of the KMD source code that are useful for any asset that is created. Ex: faucets, On-chain exchanges, Rewards based on locking funds for some time to name a few. For any more specific/custom contracts anyone is welcome to fork the codebase and write their own contracts that will run on their own blockchain. If a contract that is written downstream is deemed more-efficient/useful then it can be merged into the main codebase.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Q: Are there any resources to help me understand more about this?", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "A: If you have familiarity with programming and have the patience, you can go through the comments in following files: ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/assets.cpp@dev", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": " and in the directory ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/@dev", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": " , start with faucet, then rewards then assets.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/assets.cpp@dev", + "tagName": "a", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "jl777/komodo:src/cc/@dev", + "tagName": "a", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "CC are a new type of vout using the bitcoin protocol utxo system. The CC contract code adds constraints on the existing vins and vouts and allows us to add rules and describe circumstances where specific utxos can be spent/claimed or remain locked. This can be thought of as an extension of the CLTV and multisig functionality already available in Bitcoin but much more comprehensive and robust allowing for very complex contracts.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "CC allows us to create colored utxo and a specific set of new rules that govern these colored utxos.", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Didn't find your answer here? Please ask your questions in the ", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "#cc-general", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": " channel in", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Komodo Discord", + "tagName": "p", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + }, + { + "text": "Komodo Discord", + "tagName": "a", + "path": "historical/cc-jl/faq", + "closestElementReference": "frequently-asked-questions" + } + ], + "historical/cc-jl": [ + { + "text": "How to write UTXO based CC modules for KMD based chains - by jl777", + "tagName": "h1", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "A non-technical introduction: ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "https://komodoplatform.com/en/blog/crypto-conditions-utxo-based-smart-contracts/", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "https://komodoplatform.com/en/blog/crypto-conditions-utxo-based-smart-contracts/", + "tagName": "a", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "Source text: ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "jl777/komodo:src/cc/CC%20made%20easy@FSM", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "jl777/komodo:src/cc/CC%20made%20easy@FSM", + "tagName": "a", + "path": "historical/cc-jl", + "closestElementReference": "how-to-write-utxo-based-cc-modules-for-kmd-based-chains-by-jl777" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "This is not the only smart contracts methodology that is possible to build on top of ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": ", just the first one. All the credit for getting ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "OP_CHECKCRYPTOCONDITION", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": " working in the Komodo codebase goes to ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "@libscott", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": ". I am just hooking into the code that he made and tried to make it just a little easier to make new contracts.", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "@libscott", + "tagName": "a", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "There is probably some fancy marketing name to use, but for now, I will just call it \"CC contract\" for short, knowing that it is not 100% technically accurate as the CryptoConditions aspect is not really the main attribute. However, the KMD contracts were built to make the CryptoConditions codebase that was integrated into it to be more accessible.", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "Since CC contracts run native C/C++ code, it is turing complete and that means that any contract that is possible to do on any other platform will be possible to create via CC contract.", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "UTXO based contracts are a bit harder to start writing than for balance based contracts. However, they are much more secure as they leverage the existing bitcoin utxo system. That makes it much harder to have bugs that issue a zillion new coins from a bug, since all the CC contract operations needs to also obey the existing bitcoin utxo protocol.", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "This document will be heavily example based so it will utilize many of the existing reference CC contracts. After understanding this document, you should be in a good position to start creating either a new CC contract to be integrated into komodod or to make rpc based dapps directly.", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "I hope this document will help you understand what a Komodo utxo based CC contract is and how it is different from the other smart contracts. If you are able to dive into the ", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "cc directory", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": " and start making your own CC contract after reading this document, then I am very happy!", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "cc directory", + "tagName": "a", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + }, + { + "text": "This section contains the following docs:", + "tagName": "p", + "path": "historical/cc-jl", + "closestElementReference": "introduction" + } + ], + "historical": [ + { + "text": "Historical Documentation", + "tagName": "h1", + "path": "historical", + "closestElementReference": "historical-documentation" + }, + { + "text": "This section of the documentation contains content that is interesting historically and may not have much necessity to be perused at this time.", + "tagName": "p", + "path": "historical", + "closestElementReference": "historical-documentation" + } + ], + "historical/whitepaper/chapter1": [ + { + "text": "A Foundational Discussion of Blockchain Security", + "tagName": "h1", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "Komodo’s form of providing security is called Delayed Proof of Work technology\n(dPoW). It builds on the most advanced form of blockchain security in existence,\nProof of Work technology (PoW). The latter form of security is the method that the\nBitcoin network utilizes. To understand the value of Komodo’s dPoW security, we\nmust first explain how PoW works and why it is the most secure method of maintaining a decentralized blockchain. We must also examine PoW’s shortcomings, so\nthat we may understand the need for Komodo’s dPoW method and the advantages\nit provides to the blockchain community.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "To understand how PoW technology functions, we begin by explaining the roots\nthat make the Bitcoin protocol a viable means of securely transferring value.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "What Is A Consensus Mechanism?", + "tagName": "h2", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "what-is-a-consensus-mechanism" + }, + { + "text": "The \"Double Spend\" Problem", + "tagName": "h3", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The creation of blockchain technology stems from the early mathematical studies\nof encryption using computer technology.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "One such example is related to the information-encoding device, \"Enigma,\" invented by the Germans at the end of World War I. Alan Turing, a British Intelligence agent, famously beat the Enigma device by inventing the world’s first \"digital computer.\" This provided enough computing power to break ", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Enigma’s", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": " encryption and discover the German secret communications.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Enigma’s", + "tagName": "a", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "This early affair with encryption set off a race throughout the world to develop\nmyriad forms of securely transferring information from one party to another via\ncomputer technology. While each new form of computer encryption provided more\nadvantages, there remained one problem that prevented encryption from being useful\nas a means of transferring not just information, but also financial value.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "This challenge is known as the \"Double Spend\" problem. The issue lies in the ability\nof computers to endlessly duplicate information. In the case of financial value, there\nare three important things to record: who owns a specific value; the time at which the person owns this value; the wallet address in which the value resides. When\ntransferring financial value from one person to another, it is essential that if Person A\nsends money to Person B, Person A should not be able to duplicate the same money\nand send it again to Person C.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The ", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Bitcoin protocol", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": ", invented by an anonymous person (or persons) claiming the\nname of Satoshi Nakamoto, solved the Double Spend problem. The underlying math\nand computer code is both highly complex and innovative. For the purposes of this\npaper we need only focus on the one aspect of the Bitcoin protocol that solves the\nDouble Spend problem: the consensus mechanism.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Bitcoin protocol", + "tagName": "a", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The Consensus Mechanism Provides Security Against a \"Double Spend\"", + "tagName": "h3", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "The consensus mechanism created by Nakamoto is perhaps one of the most powerful innovations of the twenty-first century. His invention allows individual devices to\nwork together, using high levels of encryption, to securely and accurately track ownership of digital value (be it financial resources, digital eal estate, etc.). It performs\nthis in a manner that does not allow anyone on the same network (i.e. the Internet)\nto spend the same value twice.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "Let us suppose a user, Alice, indicates in her digital wallet that she wants to send\ncryptocurrency money to a friend. Alice’s computer now gathers several pieces of\ninformation, including any necessary permissions and passwords, the amount that\nAlice wants to spend, and the receiving address of her friend’s wallet. All this information is gathered into a packet of data, called a \"transaction,\" and Alice’s device\nsends the transaction to the Internet.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "There are several types of devices that will interact with Alice’s transaction on\nthe Internet. These devices will share the transaction information with other devices\nsupporting the cryptocurrency network. For this discussion, we need only focus on\none type of device: a cryptocurrency miner.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "The following descriptions are simplified explanations of a truly complex byzantine process. There are many other strategies cryptocurrency miners devise to out-mine their competition, and those strategies can vary widely.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "A Miner Competes to Add Blocks to the Network’s History, in Exchange for a Reward", + "tagName": "h3", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "a-miner-competes-to-add-blocks-to-the-network-s-history-in-exchange-for-a-reward" + }, + { + "text": "Step One: Preparing the Preliminary Information", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "This device is performing an activity called cryptocurrency \"mining.\" Let us focus\nnow on a mining device that captures Alice’s raw transaction data. This device is\nowned by a tech-savvy miner, named Bob, who wants to add Alice’s transaction to\nthe permanent history of the Bitcoin network.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "If Bob is the first person to properly process Alice’s transaction he will receive a\nfinancial reward. One key part of this reward is a percentage-based fee, taken from\nAlice’s total transaction amount.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "The Mempool is the Collection of All Raw Transactions Waiting to be Processed", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-mempool-is-the-collection-of-all-raw-transactions-waiting-to-be-processed" + }, + { + "text": "Furthermore, Bob does not have just one transaction alone to mine. Rather, he has\nan entire pool of raw transactions, created by many people across the Internet. The\nraw data for each of these transactions sits in the local memory bank of each miner’s\nmining device, awaiting the miner’s commands. Miners call this pool of transactions,\nthe \"mempool.\" Most miners have automated systems to determine the transaction-\nselection process, based on estimated profit.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-mempool-is-the-collection-of-all-raw-transactions-waiting-to-be-processed" + }, + { + "text": "Creating Transaction Hashes", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "After Bob makes his choices about which transactions he will attempt to mine (and\nwe assume that he includes Alice’s transaction), Bob’s mining device then begins a\nseries of calculations.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "His device will first take each individual transaction’s raw data and use mathematical formulas to compress the transaction into a smaller, more manageable form. This\nnew form is called a \"transaction hash.\" For instance, Alice’s transaction hash could\nlook like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "Bob will prepare potentially hundreds of transaction hashes before proceeding to\nthe next step.One important thing to understand about the compression of data in\nthe Bitcoin protocol, including the transaction hash above, is that calculations herein\nobey a principle called, The Cascade Effect.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "The Cascade Effect: Changing One Bit of Data Changes the Entire Result", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "The Cascade Effect simply means that were Bob to attempt to change even the\nsmallest bit in the raw data—whether from a desire to cheat, or by mistake, or for\nany other reason—the entire transaction hash would dramatically change. In this\nway, the mathematical formulas in the Bitcoin protocol ensure that Bob cannot create\nan improper history.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "Were Bob to attempt to create an incorrect transaction hash, other miners on the\nnetwork could use the raw transaction data from Alice, perform the proper mathematical formulas in the Bitcoin protocol, and immediately discover that Bob’s hashes are\nincorrect. Thus, all the devices on the network would reject Bob’s incorrect attempts\nand prevent him from claiming rewards.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "Step One Continued: Finishing the Preliminary Calculations", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Now, using more mathematical formulas, Bob takes the transaction hashes he is\nattempting to process and compresses them into a new manageable piece of data.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "This is called, \"the merkle root.\" It represents all the transactions that Bob hopes to\nprocess, and from which he hopes to gain a reward. Bob’s merkle root could look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Finally, Bob will gather information provided from the last miner that successfully\nadded to the permanent blockchain history. This information is called, \"the block\nheader.\" It contains a large amount of complex data, and we won’t go into all the\ndetails. The one important element to note is that the block header gives Bob clues\nabout how to properly add the next piece of information to the permanent Bitcoin\nhistory. One of these hints could look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "We will return to this clue further on.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Having all this information, Bob is nearly prepared. His next step is where the real challenge begins.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Step Two: The Race to Finish First", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Bob’s computer is going to gather all the above information and collect it into a\nset of data called a \"block.\" Mining this block and adding it to the list of blocks that\ncame before is the process of creating a \"chain\" of blocks—hence the industry title,\n\"blockchain.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "However, adding blocks to the blockchain is not so easy. While Bob may have\neverything up to this point correctly prepared, the Bitcoin protocol does not yet give\nBob the right to add his proposed block to the chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The consensus mechanism is designed to force the miners to compete for this right.\nBy requiring the miners to work for the right to mine a new valid block, competition\nspreads across the network. This provides many benefits, including time for the trans-\nactions of users (like Alice) to disseminate around the world, thus providing a level\nof decentralization to the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Therefore, although Bob would prefer to immediately create a new valid block and\ncollect his reward, he cannot. He must win the competition by performing the proper\nwork first. This is the source of the title of the Bitcoin-protocol consensus mechanism,\n\"Proof of Work\" (PoW).", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The competition that Bob must win is to be the first person to find an answer to\na simple mathematical puzzle, designed by Satoshi Nakamoto. To solve the puzzle,\nBob guesses at random numbers until he discovers a correct number. The correct\nnumber is determined by the internal complex formulas of the consensus mechanism\nand cannot be discovered by any means other than guessing. Bitcoin miners call this\nnumber a \"nonce,\" which is short for \"a ‘number’ you use ‘once.’\"\nBob’s mining device will make random guesses at the nonce, one after another,\nuntil a correct nonce is found. With each attempt, Bob will first insert the proposed\nnonce into the rest of his block. To find out if his guess is correct, he will next use\nmathematical formulas (like those he used earlier) to compress his attempt into a\n\"block hash.\"\nA block hash is a small and manageable form of data that represents the entire\nhistory of the Bitcoin blockchain and all the information in Bob’s proposed block. A\nblock hash can look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Recall now The Cascade Effect, and how it states that changing one small number in\nthe data before performing the mathematical computations creates a vastly different\noutcome.\nSince Bob is continually including new guesses at the nonce with each computation\nof a block hash, each block-hash attempt will produce a widely different sequence of\nnumbers.\nMiners on the Bitcoin network know when a miner, such as Bob, solves the puzzle;\nby observing the clues that were provided earlier. Recall that the last time a miner\nsuccessfully added data to the blockchain, they provided these clues in their block\nheader. One of the clues from the previous block header can look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "This detail, \"difficulty,\" simply tells miners how many zeros should be at the front\nof the next valid block hash. When the difficulty setting is the level displayed above,\nit tells miners that there should be exactly ten zeros.\nObserve Bob’s attempted block hash once again, which he created after making\na guess at a nonce, adding this proposed nonce into his block, and performing the\nmathematical formulas:", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The block hash above has ten zeros at the beginning, which matches the number of\nzeros in the difficulty level.\nTherefore, the hash that Bob proposed is correct. This must mean that he guessed\na correct nonce. All the miners on the network can prove for themselves that Bob was\ncorrect by taking all the same information from their mempools, adding Bob’s nonce,\nand performing the mathematical calculations. They will receive the same result, and\ntherefore Bob is the winner of this round.\nOn the other hand, due to the Cascade Effect, if Bob’s attempted nonce had produced a block hash with the incorrect number of zeros at the front, his block hash would be invalid. The network would not afford him the right to add an incorrect\nblock hash to the network, and all the miners would continue searching.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Step Three: Bob Finds the Nonce", + "tagName": "h4", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "Once a miner discovers a nonce that produces a valid block hash, the miner has\n\"found a new block,\" and can send the signal across the Internet. The consensus\nmechanism running on every other mining device can verify for themselves the calculations. Once verified, the consensus mechanism grants the miner the right both to\nadd the proposed block to the blockchain, and to receive the reward.\nLet us return to Bob’s machine, having just guessed a correct nonce, and thus holding a valid block hash. Bob’s machine instantly sends out the winning information\nacross the Internet, and Bob collects his reward from the Bitcoin network.\nAll the other miners must readjust. Earlier, they were searching for the correct\nnonce based off the information from the previous block header. However, Bob’s new\nvalid block includes a new block header. All the other miners on the network abandon\ntheir current work, adopt Bob’s new block header, make many recalculations in their\nunderlying data, and begin their search for the next nonce.\nThere is no sympathy in the Bitcoin protocol for any miner’s wasted efforts. Suppose another machine on the network was also trying to mine Alice’s transaction, and\nlost to Bob in the race. Only Bob earns the reward from Alice’s transaction, and the\nother miner receives nothing in return for their costs and time.\nFor Alice, this process seems simple. She first indicated the wallet address of her\nfriend and sent cryptocurrency. After a certain amount of time, her friend received\nthe money. Alice can ignore the byzantine process of the miners that occurred between these two events. Alice may not realize it, but the PoW consensus mechanism\nprovides the foundation of security upon which she relies.", + "tagName": "p", + "path": "historical/whitepaper/chapter1", + "closestElementReference": "step-three-bob-finds-the-nonce" + } + ], + "historical/whitepaper/chapter2": [ + { + "text": "Pow is Currently the Most Secure Form of Consensus Mechanisms", + "tagName": "h1", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "pow-is-currently-the-most-secure-form-of-consensus-mechanisms" + }, + { + "text": "There are several reasons why PoW networks, especially Bitcoin, continue to dominate in terms of security and blockchain success. A simple, preliminary reason is\nthat PoW networks foster ever- increasing speed and computer power. Miners must\nconstantly update and innovate above their competitors to continue earning rewards.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "pow-is-currently-the-most-secure-form-of-consensus-mechanisms" + }, + { + "text": "There are yet more reasons behind PoW’s success, and The Longest Chain Rule is\none of the most notable. This rule can also be dangerous to the unwary and unprepared entrepreneur of a new blockchain product.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "pow-is-currently-the-most-secure-form-of-consensus-mechanisms" + }, + { + "text": "Speed and Power are of the Essence", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "Among miners, having a faster and more powerful computer can mean earning\nrewards more frequently. For miners seeking to maximize profit, competition requires constant upgrades to machinery and to a miner’s customized underlying code.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "The frequency at which a device can create proposed block hashes is called \"hash\npower.\" The more hash power a collective PoW network has across all miners mining\nthe blockchain, the more secure thenetwork. This competitive pressure provides one important advantage in security to PoW networks, compared to alternate consensus mechanisms.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "The Network Effect: Bitcoin’s Ability to Dominate Begins", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "A high level of security fosters a sense of trust among users, and this can grow\na PoW network’s audience. As the audience grows, both the number of transactions\nand the price of the coin increase. This attracts more miners. The rising level of miners\nprovides greater overall hash rate to the network, which in turn fosters a stronger\nsense of trust. This increased sense of security can raise the number of users on the\nnetwork, which can increase the number of miners, and the cycle repeats.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "In economics, this is classified as a \"Network Effect,\" where a cycle of behavior encourages more of the same behavior, with compounding interest. Due to the Network Effect, and the fact that Bitcoin is the oldest PoW network, Bitcoin is increasing its\nsecurity at a rate faster than the rate of other PoW networks.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "Furthermore, consider the effect caused when the price of a PoW-blockchain coin\nrises. Before the rise, assume the blockchain coin is worth one dollar. A miner is\njustified in spending the necessary money (on equipment, upgrades, and electrical\ncosts, etc.) to justify one dollar’s worth of hash rate. If the price shifts upwards to two\ndollars, the miner must upgrade their entire business to justify two dollars’ worth of\na matching hash rate. If the miner does not upgrade, their competitor will, and then\nthe miner will no longer be able to compete for rewards.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "The Longest Chain Rule: The \"Secret Sauce\" of Pow Domination", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-secret-sauce-of-pow-domination" + }, + { + "text": "There are many more reasons why PoW networks continue to dominate in security.\nYet, for our discussion, there is one element that rises above all others. It is called,\n\"The Longest Chain Rule,\" and some can argue that it is \"the secret sauce\" that fuels\nPoW’s strength.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-secret-sauce-of-pow-domination" + }, + { + "text": "The Longest Chain Rule is the determining factor whenever two competing versions of the blockchain history arise on the network. The rule simply states that\nwhichever of the two versions grows longer first, wins. The other version is overwritten, and therefore all transactions and rewards on that version are erased. The\nsimplicity of this rule is a key to understanding why PoW consensus mechanisms\ncontinue to outperform their competition.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-secret-sauce-of-pow-domination" + }, + { + "text": "The Simple Effects of The Longest Chain Rule", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "On a surface level, this rule prevents a double spend by a network user. For instance,\nconsider a husband and wife accidentally attempting to spend the same money at the\nexact same time, while each person is traveling in a different part of the world.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "For the sake of the discussion, we are oversimplifying the following actions so that they take place within only a few milliseconds. We also oversimplify the technical details, for clarity. The full explanation of this process is provided in the ", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "Bitcoin wiki", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": ", for those who would like to gain a deeper understanding.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "Bitcoin wiki", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "A Tale of Two Blockchains", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "Let us suppose that the husband is in Asia and the wife is in the Americas. Both\nare purchasing a car. The husband uses all the funds from the family Bitcoin wallet to purchase a car at precisely 8:00 PM (UTC). The wife makes her purchase at the exact same moment, for a similar amount. After making his purchase, the husband’s transaction hash is immediately sent to a mining device in China, where it is held in the miner’s local mempool (recall that a mempool is a collection of all raw transaction\ndata across the network).", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "Let us suppose that the husband’s transaction arrives in the Chinese miner’s mempool at the exact moment that the Chinese mining equipment finds a correct nonce\nand a valid block hash. The Chinese miner declares the winning information, mines\na new block, and collects a reward. All the miners in his local (Asian) vicinity (who\nreceive the winning information faster than in the Americas, due to proximity) complete the block verification process, increase the length of the blockchain, and begin\nsearching for the next valid block hash.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "On the opposite side of the world, essentially the exact same actions happen. The\nwife’s transaction is sent to the nearest miner, this time located in Washington state\nof the United States. Just as the transaction enters the Washington state miner’s mempool, the miner discovers a valid block hash. He sends out the signal, mines a new\nblock, and also collects the reward (this is the same reward that the Chinese miner is\nattempting to claim). All the miners in the local (US) vicinity verify the information\nimmediately and begin searching for a new valid block hash based on the Washington\nstate miner’s recent block.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "An Internal Conflict of Interest Arises Within the Bitcoin Network", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "Note the paradox here. There are now two versions of the Bitcoin history that are valid, yet different.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "These two versions make their way across the Internet, around the world, each to\nthe other side. When the competing messages arrive, the Bitcoin protocol sees that there is a conflict: the same money was spent twice.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "Consider how on each side of the world the miners are spending their financial and\ntemporal resources to further their own interests. There is no economic incentive for\neither side to submit to the other, by nature. Therefore, there is a conflict of interest\nwithin the Bitcoin network itself. The Bitcoin network would swiftly fail, were it not\nfor The Longest Chain Rule.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "The Longest Chain Rule: The History Which is Longer First, Wins", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The Longest Chain Rule simply declares that whichever of the two competing\nblockchains grows longer first, wins. The consensus mechanism erases the other version.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "Let us suppose that the Chinese mining equipment is superior in this instance,\nand the Chinese miner manages to discover the next valid block hash and send out\nthe signal before the Washington state miner can do likewise. Across the world, the\nmoment the information arrives that the Chinese miner completed yet another valid\nblock, the Bitcoin protocol erases the Washington state miner’s version of the Bitcoin history.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "There is no sympathy for any wasted efforts, nor for any misunderstandings be-\ntween the wife and her car dealer. The Bitcoin protocol’s consensus mechanism simply presses forward. The Washington state miner’s rewards disappear, as though they\nnever occurred. The wife’s purchase of a car likewise evaporates.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "(Typically, a normal and prepared car dealer utilizing cryptocurrency would not consider a\ncustomer’s transactions acceptable until several new blocks were added to the blockchain. In\nthis manner,cryptocurrency users can ensure that a transaction is beyond contestation before\nthe customer can, for example, drive a new car off the lot.)", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The Washington state miner gets a raw deal in this scenario, but the network benefits as a whole. The Longest Chain Rule provides the necessary security to prevent\na Double Spend. The network accurately recorded one family member’s purchase of\na car, prevented the mistaken double spend, and ensured that the most competitive\nminer received a just reward.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "This example illuminates the importance of The Longest Chain Rule. However,\nthere is a dark side to this rule for the unsuspecting and unprepared blockchain\ndeveloper.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The \"Easy\" Way to Destroy a PoW Network: The 51% Attack", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-easy-way-to-destroy-a-po-w-network-the-51-attack" + }, + { + "text": "Here’s where intrigue enters the picture. The \"easiest\" way to steal money on a PoW\nblockchain (such as Bitcoin) is to perform a 51% Attack.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-easy-way-to-destroy-a-po-w-network-the-51-attack" + }, + { + "text": "In this attack, the malicious actor first spends cryptocurrency in exchange for something of value, which they take from their victim. Next, the malicious actor creates an\nalternate version of the PoW network’s history wherein those transactions never took\nplace. Using advanced mining equipment, the malicious actor then \"attacks\" the PoW\nnetwork by mining blocks to this \"false\" history faster than the rate at which other\nminers on the PoW network can mine blocks to the \"true\" history.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-easy-way-to-destroy-a-po-w-network-the-51-attack" + }, + { + "text": "Assuming the malicious actor has a sufficient hash rate, as this \"false\" history grows\nlonger than the \"true\" history, the Longest Chain Rule will cause the consensus mechanism to overwrite the \"true\" version. The earlier transactions the malicious actor\nmade would be as though they never occurred. Therefore, the malicious actor would\nkeep both their original funds and whatever item of value they exacted from their\nvictim.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-easy-way-to-destroy-a-po-w-network-the-51-attack" + }, + { + "text": "This is known as the 51% Attack. The number 51% derives from the fact that to\nsuccessfully perform this attack, the attacker must add enough hashing power to the\noverall PoW network to form a majority of the hash rate.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-easy-way-to-destroy-a-po-w-network-the-51-attack" + }, + { + "text": "Size is Yet Another Reason Behind Bitcoin’s Current Success Among PoW Networks", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "Today, Bitcoin’s overall hash rate is enormous. The collective of computers around\nthe world mining Bitcoin is effectively the largest supercomputer ever created by man.\nAs of the writing of this paper, some estimate that ", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "the Bitcoin network consumes more\nelectricity than the entire country of Denmark", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": ", and the number of miners continues\nto grow.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "the Bitcoin network consumes more\nelectricity than the entire country of Denmark", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "Therefore, to attempt a 51% Attack against the Bitcoin network could cost millions,\nif not billions of dollars in computer hardware. It would also require a sustained\nconsumption of electricity that is likely unfeasible for a single geographical location,\nand would be expensive even for a decentralized-hardware network. So long as the\nminers of Bitcoin remain interested in the Bitcoin network, therefore, Bitcoin has a\nlevel of security that is nigh impenetrable.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "We will return to the proposition of the miners’ ability to choose a different network to mine,\nlater.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "The \"Hard\" Way to Destroy a PoW Network: The Genesis Attack", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-hard-way-to-destroy-a-po-w-network-the-genesis-attack" + }, + { + "text": "A Genesis Attack on the Bitcoin Network", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Recall that according to the original version of the Bitcoin protocol, sometimes\ncalled the ", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "\"vanilla\" version", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": " , the Longest Chain Rule only requires that the blocks\nin the longest chain all be properly mined. Furthermore, recall that computers can\nendlessly duplicate code.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "\"vanilla\" version", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Finally, note that during our explanation, when describing a malicious actor’s at-\ntempt to create an empty, meaningless blockchain history, we use quotation marks\nwhen employing the word, \"false.\" Likewise, when describing the blockchain history\ntrusted by the people on the network, we include the word \"true\" in quotations.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "We do this because at the core level, the consensus mechanism is purposefully\nblind regarding any human user’s preference between \"truth\" and \"false.\" The code\nonly sees \"truth\" in terms of properly mined blocks, and overall blockchain length.\nNothing more.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Now suppose the existence of a supercomputer a thousand times more powerful\nthan the entirety of the Bitcoin-miner network. This supercomputer could, in theory,\nstealthily re-create and execute the initial code that spawned the very first block of\nthe Bitcoin blockchain—the \"Genesis Block.\" The supercomputer could then grind out block hashes, one-by-one, mining meaningless blocks and adding them to this empty,\n\"false\" version of the Bitcoin history.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Once this meaningless blockchain’s length sufficiently exceed the so-called \"true\"\nblockchain used today, the supercomputer could then release its \"false\" version to the\nInternet.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Throughout the world, (assuming the vanilla protocol) the Bitcoin network would\nautomatically recognize the \"false\" blockchain as the correct blockchain! This would\nall be according to the code. The so-called \"false\" blocks would be properly mined,\nand the length would be longer than the chain that users currently trust. The vanilla\nprotocol would, in theory, replace the so-called \"true\" history with the empty variant.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "It might seem to users like a virus being uploaded to the Internet. It could destroy\nall human trust in the current version of the Bitcoin protocol, wreaking financial havoc\nthroughout the cryptocurrency realm. While users of the Bitcoin protocol would natu-\nrally protest, the entire operation would be entirely in agreement with the underlying\ncode.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "When observing Bitcoin’s current hash power, the creation of such an anti-Bitcoin\nsupercomputer is clearly not feasible in the immediate future. Assuming Bitcoin min-\ners remain interested in the Bitcoin network, the risk of a Genesis Attack on Bitcoin\nis essentially non-existent.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "However, consider the implications of the Genesis Attack on unsuspecting or un-\nderprepared smaller PoW blockchain projects.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "The More Realistic Dangers of The Genesis Attack", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "Let us assume a naïve blockchain entrepreneur building a new product. They are\ngenerally aware that malicious actors throughout the world are likely to attack their\nblockchain, stealing funds and otherwise causing trouble. Therefore, the naïve entrepreneur decides to implement what they believe is the most secure method of a\nblockchain consensus mechanism, PoW, and they offer ample financial rewards to\nminers to incentivize a secure network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The entrepreneur and their entire audience may not realize it, but so long as their\nnetwork’s overall hash rate remains below the threshold of an attack by even an\naverage supercomputer, their entire blockchain history is vulnerable to complete annihilation. A technically astute competitor, seeing the vulnerability, and possessing\nownership of the requisite computer hardware, would be able to create an empty and\nlonger version of the same blockchain code and vaporize their competitor’s financial\nrecords.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The cryptocurrency industry is young, and few but the most advanced of develop-\ners understand the many ways in which blockchain competition can be technically\neliminated. Therefore, we have seen but a few serious cases of the Genesis Attack.\nOne notable instance occurred when an original Bitcoin developer, Luke-jr, used a variation of the attack to destroy a blockchain project called Coiledcoin. Luke- jr per-\nformed this attack out of a belief that Coiledcoin was a ", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "disingenuous project", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": ". Setting\naside any human sentiment on either side of the event, the fact stands that Luke-jr’s\nvariation of the Genesis Attack was the end of the Coiledcoin network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "disingenuous project", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The complexity in establishing a secure PoW blockchain remains a challenge for\nwould-be entrepreneurs. Furthermore, there are existing PoW developers that are not\nfully aware of their vulnerability. Likewise, there are would-be malicious actors that\nhave yet to realize the many methods available to cause frustration. The potential\ndanger surrounding the issue of the Genesis Attack shows the relative youthfulness\nof the cryptocurrency industry.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "For a PoW blockchain network to maintain Bitcoin-level security, therefore, it must\nmaintain a hash rate that is high enough to constantly mine blocks faster than a\npotential competitor could either perform the 51% Attack (destroying the most recent\nof transactions), or the deadly Genesis Attack (complete annihilation).", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The Financial and Eco-Unfriendly Problems With All PoW Networks", + "tagName": "h2", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-financial-and-eco-unfriendly-problems-with-all-po-w-networks" + }, + { + "text": "The problems with young PoW networks do not stop there, and furthermore, even\nBitcoin’s PoW network has issues: the security of a PoW network comes at a high cost\nto the environment, and miners have no obligation to mine any particular network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-financial-and-eco-unfriendly-problems-with-all-po-w-networks" + }, + { + "text": "PoW Networks Are Expensive", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "Some estimate that by 2020, the Bitcoin network alone will consume more elec-\ntricity than the entire world currently consumes (as of ", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "2017", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "). Having just one PoW\nnetwork in existence, therefore, is already strain enough on our environment. It is\nalso a burden on our infrastructure and our worldwide economy. On the one hand,\nadding additional PoW blockchains to the world can serve the purpose of forcing\nfree- market competition on the Bitcoin developers, encouraging ethical and innovative behavior. Therefore, some competition among PoW networks is likely useful.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "2017", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "However, as a human species, we can consider that there are more financially sound\nand eco-friendly methods of innovating with blockchain technology without always\ndirectly competing with Bitcoin PoW security. Our innovation, delayed Proof of Work,\nis one response to this fact, as we will soon discuss.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "Miners are Free to Mine Other Networks", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "In November of 2017, for a few hours the majority of Bitcoin network miners\nswitched their hash power to a competitor’s PoW network, the \"", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "Bitcoin Cash", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "\" net-\nwork. This switch was the result of clever software engineering on the part of the\nBitcoin Cash team.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "Bitcoin Cash", + "tagName": "a", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "The team recognized that most miners on the Bitcoin network are set to automatically mine whichever network is most profitable. Therefore, the team conducted a\ncalculated change in their underlying protocol that caused the profitability of the\nBitcoin Cash network to dramatically increase. The majority of the world’s Bitcoin\nmining equipment, running via automation, recognized the higher profitability and\nswitched to the Bitcoin Cash network automatically.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "While Bitcoin Cash’s play for a majority hash rate only proved effective for a matter\nof hours, their accomplishment raised awareness to a tacit principle in the network:\nBitcoin’s hash rate is not bound to Bitcoin. The hardware is free to serve any compatible network the miners choose.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "At the time of the writing of this paper, between Bitcoin and Bitcoin Cash, ~80% of\nthe available hash rate is aligned with the former, and ~20% with the latter. There is\nspeculation in the industry that if the Bitcoin Cash network creates a more favorable\nposition, the balance of hashing power could change on a long-term basis. Furthermore, there are many other blockchain competitors who may gain the attention of\nBitcoin’s miners in the future.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "Were a shift in the balance of hash rate to occur, Bitcoin would no longer be the\nleader of security in the cryptocurrency realm. The price of Bitcoin would likely drop\nas users realized the resulting lack of security leadership. This might cause more\nminers to switch to a more profitable network to cover the cost of operating their\nexpensive hardware. As miners abandon Bitcoin, and as users continue to leave, the\nsituation becomes a reversal of the Network Effect. The Bitcoin network would come\ncrashing downwards at an ever-compounding rate.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "This is all theoretical, but it raises yet another concern that we need to illuminate:\nthe security of a blockchain depends on many things, including the potentially fickle\nsupport of human blockchain miners. Our innovation, delayed Proof of Work (dPoW),\ntakes this fact into account as we empower members of the Komodo ecosystem with\nBitcoin-level security. Before we finally turn to our own solution, we must discuss the\nprimary competitor to the PoW consensus mechanism, Proof of Stake (PoS).", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "The Primary Alternative Consensus Mechanism: Proof of Stake", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-primary-alternative-consensus-mechanism-proof-of-stake" + }, + { + "text": "Perhaps the most popular alternative consensus mechanism is Proof of Stake (PoS).\nIn this mechanism, blocks are mined not by miners performing work, but rather by\nany user \"staking\" their coins on the open network for the right to mine blocks.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-primary-alternative-consensus-mechanism-proof-of-stake" + }, + { + "text": "The meaning of \"staking\" has different variations depending on the specific rules\nset forth by the developers of the unique variant of the PoS consensus mechanism. In\ngeneral, staking one’s coins means placing them as collateral on the open network in\nexchange for the right to mine new blocks.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-primary-alternative-consensus-mechanism-proof-of-stake" + }, + { + "text": "Users who stake their coins, thereby, can periodically extract a portion of the mempool, mine new blocks, and earn rewards. There is no need to perform any hardware-\nexpensive proof-of-work calculations, as the user’s incentive to be honest is encouraged by the fact that their own wealth hangs in the balance.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-primary-alternative-consensus-mechanism-proof-of-stake" + }, + { + "text": "The Security Risks and Shortcomings of PoS", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "The downside to PoS is that a user who simply leaves a large portion of wealth\nstaked (and therefore continually claims rewards) gradually becomes a centralized\npoint of wealth through the power of compound interest. On PoS networks, monopolies are a constant danger. The owner of a monopoly has power over the well-being\nof the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "Once a majority of the supply is obtained, the owner gains a position known as\n\"Nothing at Stake.\" The owner can mine \"false\" blocks to the PoS blockchain and use\ntheir own majority supply over the network to declare these \"false\" blocks valid. All\nother stakeholders on the network must adopt these \"false\" blocks, lest the majority\nholder use their strength to declare competing blockchain versions as invalid.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "If a non-majority holder attempts to challenge the monopoly holder’s version, the\nnon-majority holder can achieve little more than the loss of coins they placed at\nstake. Compare this with non-majority holder in a PoW system: the question over the\n\"truth\" of the blockchain history depends not upon ownership of wealth, but upon\nthe miner’s innovation and performance. PoW-based systems do not suffer from the\nrisk of monopolies, therefore, as majority stakeholders gain no unique control over\nthe mining of new blocks.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "Variations of PoS, including the popular Delegated Proof of Stake (DPoS) and Delegated Byzantine Fault Tolerance (DBFT) systems, do not resolve the underlying issue\nof monopoly ownership and centralized manipulation. In a vanilla PoS system, the\nmalicious actor needs only to purchase a majority supply of the coin to mine \"false\"\nblocks. In a DPoS/DBFT type system, wherein the ecosystem stakeholders elect and\nendow delegates with the responsibility to mine new blocks, the malicious actor has\nonly to compromise most of the delegates. Thereafter, the compromised delegates can\nmine \"false\" blocks, and the users of the ecosystem have no direct means to retaliate,\nbeyond abandoning the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "This is not to say that PoS and its variants have no use cases. Indeed, there are\nscenarios in which PoS can be useful for entrepreneurs. In the Komodo ecosystem,\nour dPoW consensus mechanism can provide security to networks that use either\ntype of consensus mechanism.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "After the following section summary, we finally turn our attention to our dPoW\nconsensus mechanism.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "A Summary of the PoW Consensus Mechanism", + "tagName": "h3", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + }, + { + "text": "In short, the PoW consensus mechanism, as designed by Satoshi Nakamoto, is\ncurrently the soundest method of blockchain security. It solves the Double Spend\nproblem and creates a secure network, capable of transferring financial value. Furthermore, competition among miners and the Longest Chain Rule create fairness on\nthe blockchain. The combination of features provides a high level of defense against\ntwo of the most dangerous methods of blockchain destruction—the 51% Attack and\nthe Genesis Attack—assuming a strong overall hash rate on the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + }, + { + "text": "New PoW blockchains can opt to compete directly with Bitcoin’s hash rate, and\nsome level of competition is good for the ethical values and innovative power of the\ncryptocurrency industry. However, it is not necessary, cost-effective, nor eco-friendly\nthat every new blockchain innovation requiring security should attempt to compete\ndirectly with Bitcoin. Not only is this unsustainable, but it is also unreliable, as it\ndepends on the arbitrary choices of the decentralized network of miners around the\nworld.", + "tagName": "p", + "path": "historical/whitepaper/chapter2", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + } + ], + "historical/whitepaper/chapter3": [ + { + "text": "The Komodo Solution", + "tagName": "h1", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-komodo-solution" + }, + { + "text": "Abstract of the Delayed Proof Of Work Consensus Mechanism (dPOW)", + "tagName": "h2", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "Komodo presents a technology, the delayed Proof of Work consensus mechanism,\nthat solves the problems described above. Komodo’s unique consensus mechanism\nprovides the same level of security as the strongest PoW network, without attempting\ndirect competition. Instead, Komodo’s consensus mechanism uses the chosen PoW\nnetwork as a storage space for \"backups\" of Komodo transactions. By this method, in\nthe event of an attempted attack on Komodo’s blockchain history, even a single surviving copy of the Komodo main chain will allow the entire ecosystem to overwrite\nand overrule any of the attacker’s attempted changes.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "In a key difference separating Komodo from regular PoW networks, our dPoW consensus mechanism does not recognize the Longest Chain Rule for any transactions that are older than the most recent \"backup\" of the Komodo blockchain. For conflicts that may arise which refer to transactions that are older than the most recent \"backup,\" our consensus mechanism looks to the backups in the chosen PoW blockchain to find the accurate record.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "Furthermore, entrepreneurs who build independent blockchains (smart chains) in\nthe Komodo ecosystem can likewise elect to have backups of their own records inserted into the Komodo main chain. In this manner, the records of the entrepreneur’s\nchain are then included in the backup that is pushed into the protective hash rate\nof the main PoW blockchain (Bitcoin). Thus, entrepreneurs and developers in the\nKomodo ecosystem can have their independent blockchains protected by the chosen\nPoW network’s hash rate.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "Therefore, to destroy even the smallest smart chain that is employing Komodo’s\ndPoW security, the attacker would have to destroy: a) all existing copies of the smart\nchain; b) all copies of the Komodo main chain; c) the accompanying PoW security\nnetwork into which the dPoW backups are inserted (Bitcoin). This endows the Komodo ecosystem with higher than Bitcoin-level security, while avoiding the excessive\nfinancial and eco-unfriendly costs.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "In addition, the dPoW security provided by Komodo is not only greater than Bitcoin, but is also more flexible. The Komodo security services are performed by notary nodes, chosen through a stake-weighted vote. Notary nodes have the freedom to\nswitch notarization to another PoW network. Reasons the notary nodes might elect\nto switch networks could include an event where worldwide miners’ hashing power\nchanges to another PoW network, or the cost of notarization to the current PoW network becomes more than necessary. Through this flexibility, the Komodo ecosystem\nmaintains both a superior level of security and a more flexible and adaptive nature\nthan Bitcoin itself.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "abstract-of-the-delayed-proof-of-work-consensus-mechanism-d-pow" + }, + { + "text": "A Note About Komodo’s Iguana Core Technology", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "All the following processes are supported by a deeper Komodo technology called\nIguana Core. Readers of our entire white paper will note that Iguana Core is featured\nin each section. This is because Iguana Core is the heart of the underlying technology\nthat enables the vast Komodo ecosystem to work together. The Iguana Core code\nitself is complex and to fully explain would require a separate white paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "In short, Iguana Core is a collection of code that serves many purposes. One function of Iguana Core is to empower the blockchain technologies Komodo either builds\nor adopts to act in coordination with each other. Often, Iguana Core can advance their\ninitial capabilities beyond original expectations. In the case of dPoW, the code that\nunderlies notary-node functionality spawned from Iguana Core technology.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "Iguana Core is coded in the C programming language—the language of choice\nof our lead developer, JL777. The C language is designed to enable computers to\nprocess high volumes of information in a secure manner at high speed. This aligns\nwith Komodo’s directives to provide security and scalability to our users.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "A Brief Discussion on the Security Provided by the Notary Nodes", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "Security is the foundational aspect of the Komodo ecosystem. Therefore, for the\nreader, we must first discuss the nature of the security the notary nodes provide.\nMore detailed explanations on individual components will follow.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "The Komodo ecosystem uses a stake-weighted vote to elect parties who will run\nsixty-four separate \"notary nodes.\" These notary nodes perform the \"backup\" process\nvia automation provided by the Iguana Core software that runs at the heart of our\nsystem. These backups are called \"notarizations.\" Each notarization performed by the\nnotary nodes acts as a marker of the \"true\" history for the Komodo ecosystem, and\nthis marker’s accuracy is secured by the hash power of the chosen PoW network.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "The notary nodes work together in a decentralized and trustless manner both to create each notarization and to write it to the chosen PoW network (Bitcoin). Frequency\nvaries between two to six notarizations per hour, and the yearly cost to perform this\nservice is ~180 BTC. Funds for this service were raised as a part of our initial Komodo\nICO, and our holdings allow us to continue this method for many years before we\nwill be required to implement a business model to replenish our reserves.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "With our dPoW mechanism, each confirmation on the chosen PoW network is also\na confirmation of the entire Komodo ecosystem’s history. The only sacrifice that is\nmade is the time it takes to push the Komodo ecosystem’s records into the protection\nof the main hash rate. For this reason, we name our consensus mechanism, \"delayed\nProof of Work\" (dPoW).", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "Our consensus mechanism is designed to keep the advantages provided by the\nPoW system, circumvent the excessive financial and eco-unfriendly overhead costs,\nand avoid the security risks found in a PoS system. We accomplish these measures\nby several means. The most important measure is that all actions a notary node takes\nare publicly verifiable, and the Iguana Core software running on the users’ machines\nverifies notary nodes’ actions. The notary nodes themselves are not arbiters of \"truth.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "Therefore, the only type of \"false\" behavior a malicious notary node can perform\nis to withhold notarization. There are sixty-four notary nodes. The minimum number of notary nodes required to maintain the Komodo ecosystem is thirteen. Thus,\na malicious actor would have to compromise fifty-one notary nodes to shut down\nthe Komodo ecosystem. Such an action would be uneconomic, as this would be destroying the access to the financial rewards a notary node receives for performing its\nduties. By this design, notary nodes have only one economically favorable position:\nto properly transfer the records of the Komodo ecosystem into a secure location and\nto increase Komodo’s market share and value.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "For the average user, when performing a trade of goods and services where security\nis desired, the user simply needs to wait until the notarization process is complete.\nAfter the notary nodes are finished, the only way to break the security protecting\ntheir transaction history requires breaking the security of the chosen PoW network\n(Bitcoin). The Iguana Core code running in the main Komodo software automates the\nverification process. Entrepreneurs and developers should be aware of this information as they design business models and services for their users.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "Thus, Komodo’s dPoW consensus mechanism maintains the security innovated\nby Satoshi Nakamoto, and because it enables the Bitcoin hash rate to serve more\nindependent blockchains than just the single Bitcoin blockchain, dPoW even expands\non Nakamoto’s original design.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "a-brief-discussion-on-the-security-provided-by-the-notary-nodes" + }, + { + "text": "The Notarization Process", + "tagName": "h2", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-notarization-process" + }, + { + "text": "Step One: Gathering the Appropriate Data", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "The process of notarization is simple. Roughly every ten to twenty-five minutes,\nthe notary nodes perform a special block hash mined on the Komodo blockchain and\ntake note of the overall Komodo blockchain \"height\" (i.e. the number of total blocks\nin the Komodo blockchain since inception). The notary nodes process this specific block in such a manner that their signatures are cryptographically included within\nthe content of the notarized data.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "(All examples herein are estimated based off this actual KMD notarization to the BTC network:\n", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "https://blockstream.info/tx/313031a1ed2dbe12a20706dff48d3dffb0e39d15e3e4ff936d01f091fb3b8556?expand", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": ")", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "https://blockstream.info/tx/313031a1ed2dbe12a20706dff48d3dffb0e39d15e3e4ff936d01f091fb3b8556?expand", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "The pieces going into the notarization process could look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "Block 607240", + "tagName": "h4", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "block-607240" + }, + { + "text": "This is the blockchain \"height\" of the Komodo blockchain at the time of notarization (i.e. the total number of KMD blocks ever created)", + "tagName": "li", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "block-607240" + }, + { + "text": "KMD", + "tagName": "h4", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "kmd" + }, + { + "text": "The letters \"KMD\" are added into the notarization mixture to indicate the name of the blockchain to which this notarization belongs", + "tagName": "li", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "kmd" + }, + { + "text": "The notary nodes will take these three pieces of information and compress them into\na format that is more computer-friendly. The result will look like this:", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "kmd" + }, + { + "text": "The above number can be said to be a cryptographic representation of all that has\nhappened on the Komodo blockchain up to this point in time. According to the Cascade Effect, were an attacker to attempt to go back in the history of the Komodo\nblockchain and change even a single character of data, and then perform the same\nhashing formulas in the Komodo code, the number above would dramatically change.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "kmd" + }, + { + "text": "This makes the notary nodes’ notarization a useful backup, assuming this number\nis in a safe location where anyone on the Internet can view and verify it. It enables\na single surviving copy of the \"true\" Komodo main chain to identify itself to the\nrest of the Komodo network, as only the \"true\" data can produce the same result.\nOn the other hand, an incorrect history of the Komodo network will not be able to\nproduce the same notarization. Through the automation in the Iguana Core software\nthat underlies the Komodo ecosystem, all users will align with the \"true\" blockchain\nhistory and ignore any malicious actors’ \"false\" attempts.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "kmd" + }, + { + "text": "Step Two: Notarizing the Data to a Secure Location", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Naturally, for security purposes this number cannot simply be saved to one person’s local computer, or be written down on a piece of paper. Were the number to be\nin such a centralized location, a would-be attacker could simply destroy the backup,\nor replace it with a \"false\" version. For the number to be useful, it must be placed\nin a secure and decentralized location. Here is where Komodo adopts security from\nanother network: Komodo will perform a simple transaction in which it writes the\nabove number into the data history of the strongest PoW blockchain (currently Bitcoin). This location is as secure as the miners’ hash rate makes it, and the location is\ndecentralized, by nature.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "To place this information in the accompanying PoW network, the notary nodes will\nuse a feature that exists at the core of the Bitcoin protocol when making a transaction.\nThe feature is called \"OP_RETURN,\" and it allows for a message to be added to the\nblockchain, permanently, as a part of performing a transaction.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "A notable use of the ability to write messages to a PoW blockchain is found in the\nfirst actions of Satoshi Nakamoto himself (themselves). In the first Bitcoin block ever\nmined, Satoshi used a feature like OP_RETURN (Nakamoto used a feature called \"coinbase,\" which is similar to OP_RETURN. A primary difference\nbetween coinbase and OP_RETURN is that coinbase is used by miners when mining a block, whereas\nOP_RETURN can be used when performing transactions.) to include this ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "message", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": ":", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "message", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Readers who have downloaded the Bitcoin blockchain to their local computer, and\nwho possess the knowledge necessary to inspect the raw Bitcoin data, can discover\nthese very words written to their own hard drive. The important thing to understand\nfor our discussion is that any message written to a secure and decentralized PoW\nblockchain is viewable and verifiable to all.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "The permanence and security of OP_RETURN messages are a core aspect of dPoW’s\nsecurity. In the event of a powerful attack on the Komodo network, there need be no\nargument over the correct notarized marker upon which the ecosystem members\nshould rely. The Iguana Core code running at the heart of each user’s Komodo soft-\nware can continue securing, decentralizing, and distributing the accurate version of\nthe Komodo history as though the attack never occurred.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Step Three: Notarizing the PoW Network Information Back to the KMD Main Chain", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "One final step remains to complete the loop of security between the KMD main\nchain and the chosen PoW network. The KMD blockchain must record within its own\nrecords the specific location where it placed this backup into the PoW blockchain.\nThis enables the Iguana Core software to identify the location of the most recent\nnotarization.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "To create this reminder, the notary nodes will now gather one more piece of information, this time drawn from the accompanying PoW network: the transaction hash\n(txid) identifying the location of the first notarization. This information could look\nlike this:", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "The notary nodes will combine it with all the information that has come before. The\nresult will be transformed, again, into a computer-friendly version:", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "This number is a compressed cryptographic representation of everything that has\nhappened in the Komodo ecosystem up to this point in time. The notarization is\nplaced as a transaction message directly into the KMD main chain itself. It enables\nthe Komodo ecosystem to know how to find a reference of its own history.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "As each notarization is built upon all the notarizations that came before, Iguana\nCore does not need to monitor each notarization. Rather, it only needs to observe\nthe most recent iteration. This is favorable for Komodo security, as there is always a\npossibility that the chosen PoW network (Bitcoin) could fail. In this event, the notary\nnodes would place their next notarization in a competing PoW network (such as Bitcoin Cash) and the entire Komodo ecosystem would remain secure. The notarizations\nin the failing PoW network would no longer be required to verify ecosystem accuracy.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "Understanding Security and Economic Incentives in the Komodo dPoW Network", + "tagName": "h2", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "The nature of mining in the Komodo ecosystem serves as an incentive to motivate\nthe notary nodes to perform their job well. This setup is also a principle method\nby which the Komodo ecosystem dramatically reduces the overhead costs necessary\nfor it to function. Portions of the mining rewards are available not just to the notary\nnodes, but also to all members of the Komodo ecosystem, through various means.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "The Komodo network on a surface-level is a minable network, like other PoW\nnetworks. Any technically savvy user can activate a device capable of mining the\nKomodo network, and thereby process users’ transactions, mine blocks, and receive\nrewards. For these miners, the Komodo protocol functions in almost the exact same\nmanner as the Bitcoin blockchain’s mining rewards function.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "Understanding the similarities will explain to the reader the motivations for the notary nodes and other Komodo miners to secure the Komodo network. The differences, on the other hand, are explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "Part V", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": " of this paper. (See the section regarding the 5.1% rewards allocated to all users who hold at least 10 KMD in their wallet address. This 5.1% reward is given to users out of the funds that would normally be given to a Bitcoin miner as a method of minting new Bitcoin coins.)", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "Part V", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "understanding-security-and-economic-incentives-in-the-komodo-d-po-w-network" + }, + { + "text": "\"Easy Difficulty\" in dPoW: The Key to Notary Nodes’ Financial Incentives", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "The foundational similarity to understand is that with each block header, clues are\nprovided for miners to find the next valid block hash. The specific clue, \"difficulty,\"\nchanges with each block header.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Under normal circumstances on a PoW blockchain, with each block header the\ndifficulty level can change. The Bitcoin protocol itself decides what the difficulty for\nthe next valid block should be. The difficulty is decided based on the amount of\noverall hash power mining the network. If many miners are active, then the hash rate\nis high, and the Bitcoin protocol sets the difficulty to a higher number. On the other\nhand, if the hash rate is low, then the protocol sets the difficulty to a lower number.\nRecall that the \"difficulty\" level determines the number of zeros at the beginning of\nthe next valid block hash. The more zeros at the beginning of a valid block hash, the\nmore unlikely each attempt at finding a valid block hash will be.\nWhen the Bitcoin protocol was in its infancy, the difficulty setting was easy. In fact,\nthe block hash we used earlier as an example is, in truth, the very first block hash\never created—by Satoshi Nakamoto himself (themselves).", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "He (they) designed the difficulty setting to encourage the network to find new block\nhashes once every ten minutes, on average.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "For a computer, to guess within ten minutes a nonce that will produce a block\nhash beginning with ten zeros is relatively easy. It is so simple, in fact, no special\ncomputer is required. Early Bitcoin miners could use nothing more than the average\ndesktop machine, having the CPU—the small heart of the computer—performing the\ncalculations.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "As more miners joined the network, however, the Bitcoin protocol automatically\nincreased the difficulty. This maintained the speed at which the pool of all miners\ndiscovered new blocks, despite the increased size of the pool. Stabilizing the speed\ncreated several benefits, including an amount of economic predictability upon which\nusers can rely.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Today, at Bitcoin’s current level of overall hash power, a valid block hash requires\na much higher level of difficulty. Here is a recent successful block hash:", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "There are seventeen zeros, and to find a valid block hash at this level requires a\nprodigious effort.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "In the race to win blockchain rewards, miners all over the world have built entire\nfarms of specialized equipment for mining. The small CPU of a desktop is no longer\nuseful, and the time of \"easy difficulty\" on Bitcoin has passed.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "The dPoW System has Sixty-Four Elected Notary Nodes", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-po-w-system-has-sixty-four-elected-notary-nodes" + }, + { + "text": "Here is where our dPoW consensus mechanism diverges from the Bitcoin proto-\ncol’s limitations. In addition to performing the notarizations of the Komodo ecosystem, notary nodes are also a special type of blockchain miner. They have a certain\nfeature in their underlying code that both enables them to maintain an effective and\ncost-efficient blockchain ecosystem and provides the notary nodes with a financial\nincentive. The combination of benefits prevents the Komodo ecosystem from falling\ninto the trap of directly competing with other PoW networks for hash-rate security\nstatus.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-po-w-system-has-sixty-four-elected-notary-nodes" + }, + { + "text": "Each Notary Node Gets One Chance Per Every Sixty-Five Blocks to Mine on Easy", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Each individual node periodically receives the privilege to mine a block on \"easy\ndifficulty.\" In other words, while the rest of the miners in the Komodo ecosystem\nare mining at a calculated difficulty level, the notary nodes occasionally receive the\nchance to mine as though they are alone on the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "The notary nodes’ \"easy difficulty\" setting operates in a cyclical manner, with each\nnotary node on its own cycle. At the start of the cycle the notary node holds the \"easy\ndifficulty\" ability until it mines one \"easy\" block. Then the Iguana Core code removes\nthe ability for the next sixty-four blocks. After the sixty-four-block period passes, the\nnotary node can once again attempt to capture a block on \"easy difficulty.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Therefore, while everyone else on the network mines at an adjustable level of difficulty according to the normal PoW consensus mechanism (which keeps the overall\nspeed of the Komodo network stable) the notary nodes have a chance to step outside\nthe normal rules. For every sixty-five-block period on the Komodo blockchain (See following section of the Free-for-All Period) , the\nodds that a block will be mined by a notary node, as opposed to a normal miner, are\nessentially 3:1.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Since the rest of the miners have an adjustable difficulty ratio, it does not matter\nhow many more miners attempt to mine Komodo. Most of the valid blocks will\nalways be found by the sixty-four elected notary nodes, even were the entire hash\npower of the Bitcoin network to somehow switch all its attention to mining Komodo.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "The mining rewards that a notary node receives through this feature are ~50 KMD\nper day. This reward occurs regardless of KMD’s popularity, market value, or even of\nthe competition from normal KMD miners. The reward notary nodes receive creates an economic incentive for each party controlling a notary node to support and protect\nthe Komodo ecosystem, and to increase the relative value of this daily ~50 KMD\nreward.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "The Free-for-All Period", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-free-for-all-period" + }, + { + "text": "Every 2000 blocks, the Iguana Core code removes the easy-difficulty mining ability\nfrom all notary nodes for a sixty-four-block period. This gives the entire ecosystem the\nchance to freely mine the Komodo blockchain. The primary purpose of the Free-for-\nAll period is to recalibrate the difficulty level of all miners on the Komodo network.\nIt also gives a fair chance to all members of the Komodo ecosystem to capture mining\nrewards.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-free-for-all-period" + }, + { + "text": "The notary nodes continue the notarization process itself throughout the Free-for-\nAll mining period. When the Free-for-All period concludes, the notary nodes regain\ntheir abilities and resume mining the current chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-free-for-all-period" + }, + { + "text": "Komodo’s Protective Measures in Action", + "tagName": "h2", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "There are myriad ways that an attacker can assail a blockchain project, and the\nKomodo ecosystem is well prepared. In this foundational paper, we only discuss two\nof the most crucial attacks—the 51% Attack and the Genesis Attack.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "In a separate technical white paper, written by our lead developer, we provide\nseveral more discussions on how Komodo responds to many other forms of attack.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "Some of this earlier paper is now deprecated, and therefore it has been removed from most locations on our website. There remain relevant sections regarding Komodo’s protections against various other attacks. Please reach out to our team directly for a copy of this white paper, if interested.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "Some mentioned therein include the Sybil Attack, the Eclipse Attack, and more. We\nencourage any reader searching for information about the deepest levels of Komodo\nsecurity not only to read the accompanying white paper, but also to reach out to our team directly.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "Notarizations Provide a Defense Against Both the 51% Attack and the Genesis Attack", + "tagName": "h3", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "By relying on the notarizations in the chosen PoW network’s hash rate (Bitcoin),\nusers in the Komodo ecosystem are well protected from both the 51% Attack and the\nGenesis Attack. Recall that in a 51% Attack, the attacker first makes a transaction and\nthen erases it by providing 51% of the total hash rate to a \"false\" blockchain where the\ntransaction never occurred. In the Genesis Attack, the attacker recreates the genesis\nblock of a blockchain and mines an entirely false history. For either of these attacks to\nplay any part in the Komodo ecosystem, the successful attack would have to destroy\nevery transaction at every level it is recorded.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "First, let us consider the implications of the notarization process provided against\nthe Genesis Attack. Once an independent blockchain has even just a single transaction\npushed through the notarization process into the chosen PoW network, that notarization protects against the Genesis Attack. To successfully complete a Genesis Attack\nagainst a Komodo-built blockchain, the attacker would have to destroy the chosen\nPoW network’s records from that moment going forward. The attacker would also\nhave to destroy the KMD main chain from that moment forward, and the entire independent smart chain. The likelihood of achieving this task is effectively as probable as\nperforming a Genesis Attack on the chosen PoW network itself.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "The Komodo ecosystem is also well protected against the 51% Attack, so long as\nusers wait for a desirable number of notarizations. Consider a transaction that is\nrecently performed on an smart chain in the Komodo ecosystem. While the notary\nnodes have not yet notarized the transaction into the KMD main chain, then it is\nplausible that during this approximately ten-minute period an attacker could successfully perform a 51% Attack on this transaction. The attacker would simply make\na transaction, and then provide 51% of the total hash rate to a \"false\" version of the\nindependent smart chain to erase the transaction. Therefore, users should always wait\nuntil they receive at least one notarization to the KMD main chain before considering\nany transaction final.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "There are methods and resources available for developers and entrepreneurs who\nwish to securely alleviate any wait time a user might experience during this ten-minute period. The Trust API (briefly explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": " of this white paper), our forthcoming CHIPS technology, and our Crypto Conditions and MoM smart-contract\ntechnology (currently in beta and alpha stages) can serve these purposes. The Speed\nMode setting on BarterDEX is a demonstration of the Trust API feature. It allows users\nto have a certain amount of high-speed transaction bandwidth available, without\nhaving to wait for any notarizations. Development on these features is currently a\ntop priority, and progress is proceeding quickly. Please reach out to our team for\nmore details, if these features are of interest.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Once the transaction reaches the KMD main chain, at this point, the attacker would\nhave to successfully perform the 51% Attack against both the KMD main chain and\nthe independent smart chain. This is already quite difficult to achieve, as it would\nrequire overcoming the notary nodes and other KMD miners, while simultaneously\nattacking the independent chain. Entrepreneurs, developers, and users should decide\nfor themselves how much trust they wish to place in the system at this point of the\nnotarization process.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "When considering large sums of money, the need for protection grows. A large\nsum of money can be both a single large transaction, or it can be the collective value\nof many small and normal-sized transactions that build up over hours, days, and\nyears. These transaction histories need protection against the sophisticated blockchain\nattacker. It is for this reason that the notarization process exists.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Once the notary nodes have pushed the most recent version of the Komodo ecosystem’s history into the chosen PoW network (Bitcoin), the entire ecosystem relies only on that notarization as the arbiter of truth. All transaction records that have been\npushed into the chosen PoW network can only be rescinded by altering the chosen\nPoW network itself (while simultaneously altering the histories of the KMD main\nchain and the independent smart chain). Accomplishing such a task is highly improbable (though we warn the reader never to consider any attack impossible).", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Therefore, any record that has been on the Komodo main chain for at least one notarization has a fortress of hash rate and other security measures at its guard. So long\nas users and developers are mindful to wait for the desired number of notarizations\nto secure their payments, both the 51% Attack and the Genesis Attack are highly unlikely either to be successful, or to provide economic value to the would-be malicious\nactor. Nevertheless, we remind all users of our ecosystem to consider their own vigilance and mindfulness as the most effective protection against the would-be attacker. Users, entrepreneurs, and developers utilize all aspects of the Komodo network at their own risk.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Considering an Attack on the Notarization Process", + "tagName": "h4", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "To create a notarization for the KMD main chain, the minimum number of notary\nnodes required is 13. If the notary nodes themselves come under attack and must\nwork to maintain access to the Internet, just 13 of the full 64 are required for the\nKomodo ecosystem to continue its operations.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "In the possible event of a disconnect from the minimum number of notary nodes,\nchains in the Komodo ecosystem should simply be on the alert. Users, developers,\nand entrepreneurs would simply need to wait for the notary nodes to regain access to\nthe Internet and resume the notarization process before considering any transaction\nfinal.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "For this reason, the position of a notary node is held with high importance, and\nthe parties which gain these positions are measured foremost by their Information\nTechnology experience and capabilities. Komodo stakeholders are responsible to vote\nfor candidates that are the most qualified to perform in the notary-node duties.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "The dPOW Consensus Mechanism is Inherent in all Komodo Smart Chains", + "tagName": "h2", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "These security features extend to any smart chain relying on the notarization process. The primary difference between an smart chain and the main chain is that the\nmain chain notarizes to an exterior PoW network (Bitcoin), whereas the smart chain\nnotarizes to the KMD main chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "The notarization for the smart chain is performed by the notary nodes as a service\nto the independent developer and entrepreneur. Notary nodes create a notarization\nof the smart chain and write it into the KMD main chain. Then they write their actions\ninto the smart chain itself. This allows Iguana Core (running at the heart of the smart chain) to identify where its most recent notarization can be found. The notarization\nprocess cycles every ten minutes, assuming the smart chain’s network is consistently\nactive. If the network has periods of inactivity, the notary nodes halt the process (to\nsave against unnecessary notarization costs) and reactivate as soon as new transaction\nactivity appears on the smart chain’s network.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "There is also a difference in the number of notary nodes required to notarize an\nsmart chain as compared to the KMD main chain. Whereas with the KMD main chain\n13 notary nodes are required, only 11 notary nodes are required to notarize an smart\nchain. This difference is based on the underlying math that ensures that the number\nof smart chains in the Komodo ecosystem can scale into the tens of thousands.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "(We invite the reader to consider the fact as each smart chain can support thousands\nof transactions per minute, this makes the combined ecosystem capable of supporting millions of transactions per minute. This includes cross-blockchain interoperability, via our atomic-swap powered technology, as explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": ". This makes\nKomodo among the most scalable of financial-technology solutions in existence, and\ncapable of competing with the transaction volumes of fiat networks.)", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Naturally, as each level of notarization takes time to perform, there is an additional\ndelay for smart chains as compared to the KMD main chain. An smart chain’s history\nis notarized into the KMD main chain approximately every ten minutes, assuming\nconstant activity. This notarization will then be pushed through the notarization process into the chosen PoW network (Bitcoin). We estimate that a transaction performed\non an smart chain will receive the KMD main chain’s protection within approximately\nten minutes, and the Bitcoin hash rate’s protection in approximately twenty to thirty\nminutes.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Another difference between the KMD main chain and an smart chain is that the\nnotary nodes only mine the KMD main chain. Smart-chain developers are responsible\nto create any required network of miners to process the smart chain’s transactions.\nThis does not need to be a full network of mining farms, such as those in Bitcoin.\nRather, it only needs to be enough computing power to process transactions, and\nto provide any desired level of hash-rate security to cover the ten-minute waiting\nperiod. For a smallbusiness with intermittent periods of transaction activity, a single,\ndedicated, full-time server may be enough. Larger businesses can scale as desired and\ncan also work to attract a network of freelance miners.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "It is also possible that a network of freelance miners will naturally arise within the\nKomodo ecosystem, to observe and manage transaction-processing services wherever\nand whenever they are required, through automation.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "This setup dramatically reduces the overhead costs and effort the entrepreneur and\ndeveloper would otherwise have to allocate to a network of high-hash rate miners.\nThese freed resources of the entrepreneur and developer can therefore be allocated to\nother uses in their business models.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "The total yearly cost for the Komodo notary nodes to notarize the KMD main chain\ninto the currently chosen PoW chain, Bitcoin, is approximately ~180 BTC/year (a\nvalue of ~$1.5M USD at the time of the writing of this paper). Funding for the notary nodes to perform this service was raised during the Komodo ICO, and current BTC holdings give us many years to come before we will be required to implement any business models to replenish our BTC funds.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "On the other hand, the total cost for the smart chain developer to notarize their independent chain into the KMD main chain is but a fraction of the cost. This security mechanism is not limited to smart chains created within the Komodo ecosystem. In fact, Komodo’s Blockchain Security Services are available to any existing blockchain. With Komodo, any blockchain can be protected with the power of the Bitcoin hashrate for a tiny percentage of the cost. We have not yet finalized the details, so please contact the Komodo Platform team at ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "marketing@komodoplatform.com", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "marketing@komodoplatform.com", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Thus, an entrepreneur in our ecosystem can have their own independent blockchain\nthat is backed up by the hash rate of the Bitcoin mining network, at only a fraction of\nthe cost. In the following section, ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part II", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": ", we begin our discussion of an entrepreneur’s\nformation and distribution of a Komodo smart chain. In ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": ", we discuss in detail\nour method of distribution and trading, using our atomic-swap technology. ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part IV", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "\ndiscusses how with each of these components, users have the option of zero-knowledge privacy. In ", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part V", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": ", we mention our smart-contract technology (our current development focus).", + "tagName": "p", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part II", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part IV", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Part V", + "tagName": "a", + "path": "historical/whitepaper/chapter3", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + } + ], + "historical/whitepaper/chapter4": [ + { + "text": "Abstract of the Decentralized Initial Coin Offering", + "tagName": "h1", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "There lies a great power in the idea that any person, regardless of nationality, creed,\nor background, can obtain funding to innovate and prosper. An integral tenet of\nblockchain technology is \"decentralization.\" By decentralizing systems, we reduce\nthe number of control points that can be compromised and manipulated. Decentral-\nization plays a more common role in our new cryptocurrency economy, but there is\none area of the market that remains centralized and vulnerable: the initial coin offering (ICO). The cryptocurrency industry needs a solution, and Komodo presents an\nanswer with our decentralized initial coin offering (dICO).", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "In today’s common ICO model, the high level of centralization creates many problems. Third-parties can block or manipulate entrepreneurs’ efforts to innovate and\nprosper. The centralized location of releasing the ICO blockchain product is vulnerable, allowing whales, hackers, and human error to corrupt or destroy an entrepreneur’s efforts. The negative experience of users in these situations can also\nimpact the perception and adoption of cryptocurrency. Furthermore, the traceable\nnature of an ICO prevents society from crowdsourcing and purchasing within our\ninherent right to barter in private.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "The dICO model, as created by the Komodo project, overcomes these challenges. It\nprovides the necessary technology to create and release a blockchain product to the\nworld with the full power of decentralization.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Entrepreneurs building on our platform begin by creating an smart chain, and our\ntechnology simplifies this process. One need only install the necessary software, execute a few commands on a command prompt, and then establish a connection between two or more Komodo-enabled devices. Komodo’s core technology will do the\nrest of the work necessary to create a fully independent blockchain, empowered with\nan array of Komodo features.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Our dPoW technology is a key feature, as explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part I", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": ". dPoW provides\nthe necessary security to protect the integrity of the blockchain. Use of dPoW is\noptional, and since smart chains in the Komodo ecosystem are independent by nature,\nentrepreneurs can discontinue dPoW services at will.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part I", + "tagName": "a", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Having thus created the blockchain, the entrepreneur then uses our decentralized\nexchange to release the project to the world in a decentralized manner. Our decentralized exchange is called, BarterDEX, and it is thoroughly explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": " of this paper. Because BarterDEX is a decentralized exchange, and through our atomic-swap\ntechnology (also explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "), no third-party manipulators can prevent the\nentrepreneur from their crowdsourcing and innovative endeavors.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Through our privacy technology, Jumblr, dICO participants can purchase the product within their inherent right to barter in private. A detailed explanation of Jumblr and its method of providing privacy is provided in ", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part IV", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": " of this paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "Part IV", + "tagName": "a", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "abstract-of-the-decentralized-initial-coin-offering" + }, + { + "text": "The Challenges in Current ICO Platforms", + "tagName": "h2", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-challenges-in-current-ico-platforms" + }, + { + "text": "Specific Weaknesses in the Centralized ICO Model", + "tagName": "h3", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "specific-weaknesses-in-the-centralized-ico-model" + }, + { + "text": "There are many weaknesses present in today’s Initial Coin Offering (ICO) process.\nSeveral notable weaknesses include third-party discrimination, \"whale\" manipulation,\nthe vulnerability to theft and human error, and a lack of privacy.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "specific-weaknesses-in-the-centralized-ico-model" + }, + { + "text": "Third-Party Discrimination", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination" + }, + { + "text": "An entrepreneur seeking to serve their intended audience may experience adverse\nintervention from a third party. The antagonists may display personal and malicious\nintent, regardless of the value of the entrepreneur’s innovation.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination" + }, + { + "text": "Centralization of Technology: \"Whale\" Manipulation, Theft, and Human Error", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "centralization-of-technology-whale-manipulation-theft-and-human-error" + }, + { + "text": "During the initial stages of a blockchain’s release to the public, users who are\nwealthy and tech-savvy (often referred to as \"whales\") have an unequal advantage:\nthey can rapidly purchase a majority of the coin supply while it is inexpensive. There-after, they can manipulate the market price at the expense of less established ICO\nparticipants.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "centralization-of-technology-whale-manipulation-theft-and-human-error" + }, + { + "text": "Furthermore, today’s ICOs are generally conducted in escrow, where the purchasers\nmust transfer money to one node for holding. This typically occurs through a single\nwebsite, and the cryptocurrency funds are held on a single server. They must then\nwait while the ICO administrators first verify the transactions and distribute the coins.\nDuring this time the funding is centralized, and therefore vulnerable to thieves and\nhuman error.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "centralization-of-technology-whale-manipulation-theft-and-human-error" + }, + { + "text": "Lack of Privacy", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "lack-of-privacy" + }, + { + "text": "Because ICO transactions are highly traceable it is difficult, if not impossible, to\nperform ICOs within our right to barter in private.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "lack-of-privacy" + }, + { + "text": "Third-Party Discrimination via the Centralized ICO", + "tagName": "h3", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "One weakness of the ICO process is, paradoxically, rooted in a great strength of\nblockchain technology: its borderless nature. A key power of any blockchain is that\nany human capable of accessing the technology can activate the blockchain, regardless of their geographical location or social status. Thus, anyone can provide yet another verifiable record of the transaction history, and this decentralization provides a\ncrucial element of security to the blockchain.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "An ICO innovator, therefore, may prefer to use a blockchain platform that transcends man-made barriers, to protect their innovation. Circumventing man-made\nbarriers could be integral to the blockchain’s survival, because the element of decentralization prevents malicious actors from creating subjective borders around the\nblockchain records and then using authority to falsify and manipulate.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "This creates a conundrum, however. As a human race, we also find strength and\nempowerment in subjectively defining our own demographics for various reasons,\nwhether they be to form companies, cultures, communities, etc. While we find the\nability to create subjective demographics useful, it contrasts with the borderless nature of blockchain technology. Members of one demographic may desire to participate\nin a specific ICO, but another demographic may find this unfavorable. Therefore, the\nsecond party might try to forestall progress. The paradox lies in the fact that for the\nunderlying blockchain product to maintain its integrity, it must serve both communities without regard to any man- made barrier between them.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "The problem compounds even further as we observe that on a decentralized\nblockchain platform, a new ICO product is capable of functioning anywhere there\nis access to the underlying technology. Therefore, on a decentralized platform, once a\nnew blockchain product is released any person from either demographic is now able\nto utilize it regardless of the overall sentiment of either demographic. The problem\nbecomes most pronounced if members of a competing group attempt to even maliciously prevent an innovation out of selfish reasons. Thus, it is imperative that the\ninnovator have the option of protection against would-be malicious competitors.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "The overall centralized nature of today’s ICO process, therefore, presents a problem.\nEntrepreneurs who are not able to navigate the adverse effects of an inhibiting third\nparty may be unable to realize their creative potential.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "Centralization of ICO Technology: Whales, Hackers, and Human Error", + "tagName": "h3", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "centralization-of-ico-technology-whales-hackers-and-human-error" + }, + { + "text": "Yet another issue plaguing ICOs is that the technology upon which an ICO is\nreleased is also centralized. This presents a vulnerability to human foibles.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "centralization-of-ico-technology-whales-hackers-and-human-error" + }, + { + "text": "The Manipulative Behavior of Whales", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-manipulative-behavior-of-whales" + }, + { + "text": "The centralization of the point of purchase creates an unequal playing field in favor\nof wealthy, tech- savvy users (referred to as \"whales\" in the cryptocurrency community). To understand this problem, one must comprehend that \"nodes\" (computer\ndevices which compute the buying and selling of cryptocurrencies) take orders from\nICO purchasers one-by-one. Presently, ICOs are released on only one node — for example, the purchase could take place through a single website, wherein the gathered\nfunds are held on a single server.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-manipulative-behavior-of-whales" + }, + { + "text": "Because the node can only process one transaction at a time, the person whose\norder arrives first will receive an advantage over the coin’s future value. If the initial\npurchaser is both wealthy and able to program sophisticated \"bots\" (custom-designed\nprograms that automate the trading of cryptocurrencies), the whale can buy a controlling interest in the supply before less wealthy or less technologically savvy people\nhave a chance to participate.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-manipulative-behavior-of-whales" + }, + { + "text": "In our current market, often the people who would most benefit from an ICO are\nunable to participate before the supply evaporates. Meanwhile, this whale now has\nsufficient control on the overall supply to act as a centralized market manipulator.\nBuying and selling in large quantities forces fluctuations in the whale’s favor.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-manipulative-behavior-of-whales" + }, + { + "text": "Hackers and Human Error", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "Because all coins of an ICO typically process through one node during the pur-\nchasing period, the entire supply is vulnerable to any person with access to the node.\nTherefore, both malicious and clumsy human agents can destroy an ICO. The data\nholding the cryptocurrency can be damaged, stolen, or simply lost through incompetence.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "An entrepreneur can also consider that in today’s ICO model both the funding\nprovided by the purchasers, as well as the actual ICO coins that the entrepreneur\nintends to sell, remain on the centralized node for a long period of time. It is not just\none side of the crowdsourcing endeavor that is at risk, but both.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "This central point of failure can be catastrophic for all participants.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "The Right to Barter in Private", + "tagName": "h4", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "Finally, the lack of current privacy options in the ICO process inhibits blockchain\nparticipants from purchasing within our right to barter in private. This right to privately exchange goods and servicesextends further into history than the written word.\nWe have, as a species, utilized this right to organize into communities, institutions,\nand even nations.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "Many of humanity’s most meaningful advancements in art, technology, and other\nhuman endeavors began in situations where the creator had the security of privacy\nin which to explore, to discover, to make mistakes, and to learn thereby.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "The right to barter in private, however, is under modern threat as the recent monumental and historical phenomenon, \"The Internet of Information,\" permits many\nkinds of people to quietly and without inhibition; monitor other people’s shopping\nand bartering behavior. This is a dangerous development, as it destroys the privacy that empowers much of humanity’s personal growth. We must reserve our right to\nbarter in private, for we observe that there are myriad ways in which a common\nperson may explore personal growth in an economic environment.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "Yet, the highly traceable nature of today’s centralized ICO model is in direct contradiction to this human need.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "The Blockchain Industry Needs a Solution, and Komodo Presents an Answer", + "tagName": "h2", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-blockchain-industry-needs-a-solution-and-komodo-presents-an-answer" + }, + { + "text": "Together, these issues show that the current state of the ICO market is plagued\nwith limitations that inhibit freedom, security, entrepreneurship, and even human\ngrowth. The cryptocurrency industry needs a solution to these problems, and Komodo presents an answer.", + "tagName": "p", + "path": "historical/whitepaper/chapter4", + "closestElementReference": "the-blockchain-industry-needs-a-solution-and-komodo-presents-an-answer" + } + ], + "historical/whitepaper/chapter5": [ + { + "text": "The Komodo Solution", + "tagName": "h1", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-komodo-solution" + }, + { + "text": "The Decentralized Initial Coin Offering", + "tagName": "h2", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "The Komodo ecosystem presents a solution, the decentralized the initial coin offering (dICO), that solves these issues and even adds new possibilities to the cryptocurrency market. The decentralized nature of the dICO enables the entrepreneur to\nrelease a blockchain product beyond the reach of a malicious third-party influencer.\nFurthermore, through our decentralized exchange, BarterDEX, the dICO allows an\nentrepreneur to release their product in a manner that mitigates and even eliminates\nmany of the issues regarding whales, hackers, and human error. With the advantage\nof Komodo’s privacy technology, Jumblr, the participants in a dICO are empowered\nwith their right to barter in private.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "Our decentralized exchange, BarterDEX, is explained in detail in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": ". An indepth discussion of our privacy technology, Jumblr, is provided in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "Part IV", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "Part IV", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-decentralized-initial-coin-offering" + }, + { + "text": "The Process of Creating a New Blockchain in the Komodo Ecosystem", + "tagName": "h2", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "Formerly, coding and generating the blockchain itself were a most difficult aspect\nof the development process. Now, the Komodo team has simplified the process into\neasy steps. Through Komodo’s Iguana Core technology (introduced in Part I), the\nentrepreneur can create a new independent blockchain by entering just two simple\ncommands in the command prompt of their computer.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "The following steps rely on one of Komodo’s underlying software processes that\nrun in the background on a user’s computer. The name of this software is the \"Komodo daemon,\" or ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": ", for short. ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": " is rooted in Iguana Core technology.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "The First Command to Create a New Coin", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "The first part of the command, ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "./komodod", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": ", initiates a new instance of Komodod.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "By default, the initial ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "./komodod", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": " command executed alone would launch the\nKomodo main chain, KMD, on the user’s computer. However, the next part of the\ncommand tells Komodod to behave differently.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This command tells Komodod to look for a coin with the inserted name.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This tells Komodod how many total coins there should be in this chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This tells Komodod that the user desires to mine this network.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "The underlying code of Iguana Core can now make several decisions. First, it will check its connection to the Komodo ecosystem to see if there is a coin by the name of *ENTREPRENEUR’S COIN+, having a coin supply of [TOTAL COIN SUPPLY]. If the coin name and total supply are not found, Komodod will assume that the user is attempting to create a new coin, and the [-gen] command tells Komodod that the user wants to mine it.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "Komodod now begins the automated process of creating a new smart chain in the Komodo ecosystem. Komodod will first make a fresh and empty clone of the KMD main chain (though it will not yet generate the actual coins), with only a few differences to the underlying nature of the chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "The Features of the New Smart Chain", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "There are several primary differences between an smart chain and the main Komodo\nchain. For example, the smart chain will not automatically generate 5.1% rewards for\nall wallet addresses holding coins, unlike the main chain. Furthermore, the smart\nchain’s dPoW consensus mechanism is built to notarize to the KMD main chain (as\nexplained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part I", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": ").", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part I", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Some of the differences reveal strong advantages held by members of the Komodo\necosystem. By design, this smart chain is capable of automatically adopting any updates that the Komodo core development team add to the framework. The smart chain\nalso has a built-in capacity within the framework to allow the entrepreneur to code\nnew rules.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "For example, the entrepreneur may decide not to use a PoW consensus mechanism,\nbut may instead prefer PoS (discussed in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part I", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": ". Other changes can also be made, according to the entrepreneur’s imagination and developer knowledge. So long as\nthe new code that the entrepreneur adds to the smart chain does not interfere with\nthe overall framework, the smart chain will smoothly integrate with the rest of the Komodo ecosystem. We provide more details on this topic in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part V", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "’s section regarding\nsmart contracts.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part I", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Part V", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "For the purposes of our discussion, this new smart chain is otherwise the same as\nthe Komodo main chain, including the features to communicate natively with other\nblockchains via BarterDEX. The reader may note that this new Komodo smart chain\nis not a colored-token running on top of a parent blockchain, as is often the case in\nother blockchain ecosystems (consider the ERC20 token of the Ethereum platform).\nInstead, this smart chain is an entirely unique and independent blockchain unto itself.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "This empowers the entrepreneur with significant advantages over other blockchain\necosystems. The smart chain can run on its own nodes, act according to whatever\nrules the entrepreneur can imagine, and can scale according to its own audience.\nShould an smart chain in the Komodo network experience a sudden explosion of\nactivity, the sudden change will not negatively impact the overall Komodo ecosystem.\nThis independence grants a significant competitive advantage in the form of overall\nsecurity, speed, and ease of use.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Consider the advantage of developing an entrepreneurial product as a fully independent blockchain. Should the entrepreneur desire at a future point to leave the\nKomodo ecosystem for any reason, they are free to take their blockchain product\nwith them.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Generating and Mining the New Coins", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "Let us return now to the moment after the entrepreneur executes the first command in the command prompt, and Komodod creates a fresh and empty clone of\nthe Komodo main chain. While the instance of the Komodod program (running on\nthe entrepreneur’s local computer device) will create the necessary code for the new\nsmart chain, Komodod will not yet generate the coin supply itself. Komodod instead\nwill wait for the next few steps to occur.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "The reason for the wait is that a blockchain’s essence depends upon existing not\nin isolation, but in a network of multiple devices connected. This is the nature of\ndecentralization. Komodod will wait until it receives a signal from another device,\nthus indicating that it has a peer with which to form the smart-chain network.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "The Entire Coin Supply is Distributed in the Genesis Block", + "tagName": "h4", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "It is imperative to note that in the Komodod process, the entire coin supply is\ncreated and distributed immediately to the device that mines the first block, the Genesis Block. The code performs this distribution as a one-time reward for discovering the first valid block hash (as explained in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Part I", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "). Due to the sensitive nature of this\nstep, we recommend that the entrepreneur use a Virtual Private Server (VPS) service.\nThis allows two secure devices to connect to each other with little, if any, risk of a\nthird-party actor mining the first block (which would thus enable a would-be thief to\nacquire the entire coin supply before distribution).", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Part I", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Having established a secure connection with a second device, the entrepreneur will\nenter the following command on the second device.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Note that the first three elements of the command, [./komodod], [-ac_name], and\n[-ac_supply], are the same. It is important that the parameters inserted into these commands match exactly. Otherwise, the instances of Komodod running on the separate devices will ignore each other, and the coin will not be mined.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "In the second VPS, the [-gen] command is not present. In this circumstance, we are assuming that the entrepreneur wants to capture the entire coin supply on the first device. Technically speaking, assuming the entrepreneur has ownership over both devices, it does not matter if both devices initiate the [-gen] command. Both devices will attempt to mine the first block and the superior device will receive the coin supply.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "There is another key difference in the command.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "An \"IP address\" can be compared to a human being’s home mailing address, where\nthe IP address is designed for computers to be able to geographically find each other.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "With the execution of the IP address command, the second device knows to look\nacross the available connection (the Internet, VPS service, etc.) for the first device,\nwhich is already running an instance of Komodod and the new coin. The command\nhere simply tells the computer the proper IP address of the first device.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "As soon as these two devices connect, having all the proper Komodod software\nrunning and set in place, the mining begins. One of the devices will mine the first\nblock and instantly receive the total coin supply of the entire blockchain into the\nuser’s chosen wallet.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Both devices sync this information to each other, and the *ENTREPRENEUR’S COIN+ now exists in the world. The entrepreneur can also add more and more devices to the network.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Notarizing to the Komodo Main Chain", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "To receive the security of the dPoW consensus mechanism, the entrepreneur simply needs to have the elected notary nodes add the *ENTREPENEUR’S COIN+ to their internal list of coins to notarize. This will empower the entrepreneur’s product with the same verifiable and decentralized security of the Komodo parent chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "The process of adding a new notarization service can be executed by the notary\nnodes with just a simple command. While we are at this early stage of development,\nthis sign-up process for new dICO products is not yet automated. In the future, we\nintend to automate as much of this process as possible.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "There is a fee for receiving notarization services. This helps to cover the business\ncosts associated with notarization (recall that all notarizations are financial transactions, by nature).", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "We already have over fifteen partners successfully notarizing to the Komodo main\nchain. We are actively seeking more partners, and we encourage the reader to reach\nout to our team directly with inquiries.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "Entrepreneurs are thus able to use the smart chain’s native dPoW consensus mechanism to notarize to the Komodo main chain to create a secure backup of the coin’s history. Even in the event of an attack at this early state of existence the entrepreneur can\nrest assured that their product will survive, so long as one copy of the blockchain’s\nhistory exists.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "Everything is set on the backend for the entrepreneur, and they are now fully prepared to begin the dICO process. Naturally, we understand that for many potential\nentrepreneurs in the Komodo ecosystem, this process is unfamiliar territory. We encourage interested entrepreneurs to reach out to our team for guidance during development.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "The Distribution of Coins", + "tagName": "h2", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-distribution-of-coins" + }, + { + "text": "The Trials and Travails of the Centralized ICO Method", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "Previously, the entrepreneur at this point would have been required to go through\na centralized ICO process.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "This could have required several cumbersome and possibly dangerous steps. For\nexample, the entrepreneur would begin gathering cryptocurrencies from their audience to personally hold in escrow while the process of matching purchases to the new\nblockchain coin were verified.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "To distribute these coins, the entrepreneur had two primary options. They could\nhave created and distributed a digital software wallet capable of holding the entrepreneur’s coins. This would requiretheir audience to download the software. The\nentrepreneur would then have to send all the appropriate coins to each wallet address,\naccording to the process they established during their ICO.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "Or, the entrepreneur would have to make formal arrangements with another service\nto manage this process, such as with a centralized exchange. This would require a successful negotiation with this third party, likely paying fees as a part of the agreement.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "The entrepreneur would then be required to act within the centralized exchange’s\narbitrary framework.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "The centralized ICO process can be arduous and, at times, disastrous.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-trials-and-travails-of-the-centralized-ico-method" + }, + { + "text": "Enter the dICO", + "tagName": "h3", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "enter-the-d-ico" + }, + { + "text": "Powered by Komodo’s BarterDEX & Jumblr Technology", + "tagName": "h4", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "The Komodo dICO model is an extension of Komodo’s BarterDEX technology.\nBarterDEX is an atomic- swap powered, decentralized exchange. It enables users to\ndirectly exchange cryptocurrencies from one person to another without third-party\ninvolvement (i.e. no centralized exchanges, escrow services, vouchers, etc.). Furthermore, as the dICO model is entirely decentralized, anyone can use it at will. There are\nno centralized authority figures capable of creating artificial control points that can\nbe manipulated at the expense of the users. Please turn to ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": " for more details.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "To begin the distribution process, the entrepreneur first chooses how many nodes\nthey would like to use for the distribution. Nodes can be any type of machine capable\nof connecting to BarterDEX. Typically, a small-business entrepreneur may choose to\nuse server machines. Server capacity can be rented online, and the servers can be\ndistributed geographically throughout the world, if desired.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "While renting a multiplicity of servers may be the method of choice for an estab-\nlished small-business, it is not a requirement. An owner of an even smaller business,\noperating on a low budget, can simply use their own computer(s), geographically\nstationed nearby for convenience. On the other hand, a large corporation could use\nthe server capacity they already own. The number and strength of the machines is a\nchoice made by the entrepreneur.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Having decided the method of distribution, the entrepreneur will then prepare the\ntotal supply of coins. (We are assuming the coins are still located on the first device\nthat mined the entrepreneur’s genesis block.) The entrepreneur will first break down\nthe total collection of coins into smaller digital pouches. These small bags of coins\nare ultimately what will be traded on BarterDEX with their audience. The size of\nthe bags is chosen by the entrepreneur, and therefore the entrepreneur can choose a\nsize that is agreeable to their outlook on any KYC legal requirements. For a detailed\nexplanation of the process of breaking down the total collection into smaller bags of\ncoins, we also recommend reading about UTXO technology in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": " of this paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Having created these bags of coins, the entrepreneur then sends them to all chosen nodes throughout the BarterDEX network. Coins are distributed to each node’s\nwallet(s) by a normal transaction.\nWith the coins distributed as desired, the entrepreneur sets the time and date when\neach bag of coins will be available for purchase. When a bag of coins becomes available on BarterDEX for trading, members of the Komodo ecosystem simply purchase the coins. Please see our discussion on atomic- swap technology in ", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": " for more\ndetails.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "powered-by-komodo-s-barter-dex-and-jumblr-technology" + }, + { + "text": "The Many Solutions of the dICO Model: Security, Privacy, Decentralization, and Freedom", + "tagName": "h4", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "This method of conducting a decentralized initial coin offering mitigates and cir-\ncumvents the issues found in a centralized ICO. The entire process is conducted in a\ndecentralized manner. The dICO entrepreneur has direct access to their audience, as\nthere are no centralized human authorities acting as middlemen.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Because the bags of coins can be distributed across a vast range of nodes, and because the entrepreneur can program the time at which each bag of coins becomes\navailable, it is possible to prevent a \"whale\" from seizing a majority control in one\nswooping moment of the dICO. The whale will have to compete to purchase their desired amount one transaction at a time, just like the other members of the ecosystem.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Furthermore, BarterDEX has advanced trading features that provide additional\nwhale resistance. For example, BarterDEX can perform ten to twenty trades at once,\nunlike a normal node in the typical ICO model. Therefore, even if the whale were able\nto place large orders on every node of a dICO, BarterDEX would still be performing\norders simultaneously for other members of the Komodo ecosystem.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Concerning theft, the dICO provides solutions to both methods of theft in the centralized ICO. Unlike the centralized ICO, once the distribution of the bags takes place the effect of their distribution adds a layer of security from a would-be hacker. The hacker can only steal funds at the node they manage to penetrate. Were the hacker to steal coins before the actual dICO, the entrepreneur would have the option to simply create a *NEW ENTREPRENEUR’S COIN+ again, without losing any personal wealth.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Furthermore, since the trades happen instantaneously with each bag available for sale, the entrepreneur is only in possession of either their own *ENTREPRENEUR’S COIN+, or the cryptocurrency funds provided by the dICO participants—but not both. The entrepreneur is never at risk of losing both their own funds and the funds of their audience, which is a strong advantage over today’s ICO model.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Regarding human error, should one of the node’s databases be corrupted by accident or hardware failure, only one node’s coin supply is lost.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Since the coins are immediately available on the BarterDEX exchange for trading,\nthe entrepreneur’s audience has an immediate trading market. This stands in contrast\nto today’s ICO model, where users often wait weeks or even months before liquidity\nfor their ICO product arises in a centralized exchange.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Finally, through Jumblr technology, participants have the option of privacy when\npurchasing the dICO product. This enables them to support the crowdsourcing efforts\nof the entrepreneur within their inherent right to barter in private.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Upon conclusion of the distribution of the dICO coin supply the entrepreneur\nhas successfully and immediately completed all the crowdsourcing-related steps that\ncould have taken months in today’s typical ICO model.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Komodo’s dICO model is significantly easier, freer from manipulation, more flexible, and more secure.", + "tagName": "p", + "path": "historical/whitepaper/chapter5", + "closestElementReference": "the-many-solutions-of-the-d-ico-model-security-privacy-decentralization-and-freedom" + } + ], + "historical/whitepaper/chapter6": [ + { + "text": "Abstract (BarterDEX)", + "tagName": "h1", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "abstract-barter-dex" + }, + { + "text": "Komodo’s decentralized exchange, BarterDEX, allows people to trade cryptocurrency coins without a counterparty risk. The protocol is open-source and trading is available for any coin that any developers choose to connect to BarterDEX. The parent project, Komodo, freely provides BarterDEX technology through open-source philosophy. Our service fully realizes decentralized order matching, trade clearing, and settlement. The order-matching aspect uses a low-level pubkey-to-pubkey messaging protocol, and the final settlement is executed through an atomic cross-chain protocol. Like any exchange, our decentralized alternative requires liquidity, and we provide methods and incentives therein.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "abstract-barter-dex" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introduction" + }, + { + "text": "The current, most practical method for cryptocurrency exchange requires the use of centralized exchange services. Such centralized solutions require vouchers to perform the exchange. Among many dangers present in this system, end-users are under the constant risk of their assets being stolen either by an inside theft or an outside hack. Furthermore, the operators of centralized exchanges an exhibit bias in how they facilitate trading among their users. They can also create fake levels of volume on their exchange. To eliminate such dangers and limitations requires the creation of a decentralized-exchange alternative.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introduction" + }, + { + "text": "Among all the centralized exchanges, trading tends to coalesce around a few of the most popular. There is a reason for this behavior. Trading via vouchers is fast; a central exchange can swap internal vouchers instantaneously, whereas trading actual cryptocurrencies through human-to-human coordination requires communication from both parties. It requires waiting for blockchain miners to calculate transaction confirmations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introduction" + }, + { + "text": "The speed advantage of a centralized exchange, therefore, creates a compounding effect on the centralization of traders. The faster processing time of vouchers attracts more people: the increased presence of traders creates higher liquidity: with more liquidity, the exchange can feature better prices: the higher quality of prices in turn attracts a larger community, and the cycle repeats. This is a classic Network Effect, and it is the reason that a few centralized exchanges dominate with high-volume trading, while smaller exchanges—both centralized and decentralized—suffer from a lack of liquidity.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introduction" + }, + { + "text": "The Beginnings and Travails of Decentralized Exchanges", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-beginnings-and-travails-of-decentralized-exchanges" + }, + { + "text": "In 2014 a project called The MultiGateway created one of the first decentralized resources for trading cryptocurrencies. The MultiGateway relied on a separate, though related, blockchain project called the NXT Asset Exchange. The latter facilitated the decentralized exchange of blockchain coins by using proxy tokens (as opposed to vouchers), and these proxy tokens represented external cryptocurrencies (such as Bitcoin).", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-beginnings-and-travails-of-decentralized-exchanges" + }, + { + "text": "The underlying technology of this solution is still in use by many blockchain platforms, but the proxy- token protocol is too limited to compete with centralized exchanges. Because trading by the means of proxy tokens requires trading on an actual blockchain, the trading process loses the speed of a centralized exchange. Also, a proxy-token decentralized exchange must still have a storage center to hold the external cryptocurrencies represented by the proxy tokens. At best, this storage center is only distributed, and therefore end-users are under the same counterparty risk that exists in centralized exchanges. Furthermore, the process of trading on proxy-token platforms requires using a set ofgateways (i.e. \"The MultiGateway\") to convert external native coins (such as Bitcoin) to and from the affiliated proxy tokens. Together, these many problems make the proxy-token method of decentralized trading an impractical solution.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-beginnings-and-travails-of-decentralized-exchanges" + }, + { + "text": "Therefore, a decentralized exchange alternative that seeks to successfully remove the threats and limitations of centralized exchanges must feature the same speed, liquidity, and convenience of a centralized exchange. As of today, no decentralized exchange has successfully replaced any of their centralized counterparts.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-beginnings-and-travails-of-decentralized-exchanges" + }, + { + "text": "BarterDEX: A Complete Solution", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "We now present a fully functional, new decentralized technology that makes a competitive decentralized exchange possible. We call our technology BarterDEX, and it allows people to freely and safely exchange cryptocurrency coins from one person to another.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "The BarterDEX decentralized exchange creates a competitive method for bartering cryptocurrencies, combining three key components: order matching, trade clearing, and liquidity provision. These components are combined into a single integrated system that allows users to make a request to trade their coins, find a suitable trading partner, and complete the trade using an atomic cross-chain protocol. Additionally, BarterDEX provides a layer of privacy during the order-matching process, enabling two nodes to perform a peer-to-peer atomic swap without any direct IP contact.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "The \"order matching\" component is the process of pairing an end-user’s offer to buy with another end- user’s offer to sell. This component is not the actual trade itself, but is only a digitally created promise between end-users stating that they will perform their parts of the trade.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "The order-matching process is achieved by algorithms that define how the orders are paired, and in which order they are fulfilled.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "After a successful order-matching execution, the next component is the \"clearing\" aspect of the trade, wherein end-users must fulfill their promises. This is the process wherein the assets are swapped between the trading parties. BarterDEX facilitates this process and assures the safety of the users therein.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "Recall that in previous decentralized exchanges there lies a problem when an exchange has low liquidity. BarterDEX solves this problem by creating Liquidity Provider Nodes (LP nodes). LP’s are trading parties that act as market-makers, buying and selling assets. They provide liquidity to the exchange, and make their profit from the spread between bid and ask orders. LP’s bring price stability to the market, and facilitate end-users in making fast and efficient trades.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barter-dex-a-complete-solution" + }, + { + "text": "Recent Improvements in BarterDEX", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "BarterDEX is the result of years of development and iterated versions, with each iteration adding the next layer of required functionality to achieve our eventual goal of large-scale adoption.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "BarterDEX holds support for ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "SPV Electrum-based", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": " coins (removing the need to download a coin’s blockchain), all Bitcoin-protocol based coins running native-coin daemons, Ethereum, and Ethereum- based ERC20 tokens. The BarterDEX API is built to handle the nature of the SPV requirements, providing additional functionality to developers.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "SPV Electrum-based", + "tagName": "a", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "BarterDEX also enables a feature known as Liquidity Multiplication, a protocol that allows the same funds to be used in multiple requests on BarterDEX \"orderbooks.\" The first request to fill completes the trade, and all outstanding requests are immediately cancelled. This feature is available to the user when providing liquidity to the exchange (called a \"Bob-side\" trade); it is not necessary to establish a full LP node to engage in Liquidity Multiplication.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "Liquidity Multiplication therefore allows an initial amount of funding to create an exponentially higher amount of liquidity on the exchange. This also provides a special advantage for traders that like to wait for below-market dumps. While this feature is something that any other exchange could implement, few do. On BarterDEX, all orderbook entries are 100% backed by real funds, as opposed to a centralized exchange’s vouchers, which are not as reliable and therefore would present yet another danger for their end-users.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "recent-improvements-in-barter-dex" + }, + { + "text": "Barterdex Technology", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barterdex-technology" + }, + { + "text": "Before we get into details regarding the nature of atomic swaps, there are several aspects of BarterDEX that are critical to understand.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "barterdex-technology" + }, + { + "text": "Order Matching", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching" + }, + { + "text": "The first is the decentralized orderbook. The orderbook is the collection of bids and offers that end- users place on the network. To create our orderbook, BarterDEX creates a custom peer-to-peer network that employs two separate types of nodes: a full-relay node and a non-relay node.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching" + }, + { + "text": "Order Matching with Full-Relay and Non-Relay Nodes", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "The difference between a full-relay node and a non-relay node is that the former is typically a high- volume trader who provides liquidity to the network in exchange for being a trading hub on the network. This puts him in the position of being able to complete trades more quickly than his trading competitors. The latter type of node (non-relay) is the more common user, who engages with BarterDEX when trading one cryptocurrency for another, given the user’s daily motivations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "There are no requirements or payments necessary to become either type of node, and so anyone desiring to become a high-volume full-relay node will find no restrictions. To be successful as a full-relay node, however, one must be able to carry out transactions on the network with a competitive Internet connection and high-capacity bandwidth.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "There are several incentives encouraging users to become full-relay nodes, as these types of nodes are necessary to build the backbone of the BarterDEX network. One incentive to run a full-relay node is that by being at the center of a wide network of non-relay nodes, the full-relay node has better connectivity and thus a higher chance of being the first to complete a trade.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "A non-relay node has all the same available trading options—including the option to be liquidity providers, and thus use liquidity multiplication. Non-relay nodes are only limited, naturally, in terms of the total number of connections they maintain to other users. We expect that most nodes joining the network will be non-relay nodes.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "In theory, roughly 100 full-relay nodes should be able to support thousands (if not tens of thousands) of non-relay nodes, thus providing a large and high-volume network. We are in the process of achievingreal-world implementation. As of the writing of this white paper, the public Komodo community has performed almost 100,000 atomic-swap trades on BarterDEX.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "When limitations do arise in the scaling process, we have various contingencies in place, one of which is the creation of clusters. It is possible to create clusters of BarterDEX nodes that are separate from other clusters on the network. To achieve this, when one cluster approaches a level of user load that is overcapacity, users can opt to seed a new cluster by creating an independent set of seed nodes. This feature amplifies the scalability of the BarterDEX network, as it allows clusters of users to form in accordance with user desires. We assume that at large scales there will be sufficient inventory in the orderbooks for clusters to provide ample asset liquidity, especially if the act of partitioning into a new cluster is based on trading a coin that is overcrowded.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "Furthermore, as we continue to develop this new technology, we may also create a protocol that will allow these separate clusters to share their order boards via bridge nodes, which in theory can act to cross-pollinate desired orders from one cluster to another.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "To optimize the network load, we minimize the hierarchical transmission of the orderbooks and the fetching of data. There are also several different methods of obtaining data by which we can maximize the number of nodes that can fully connect to the BarterDEX network.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "Jumblr Technology Adds Privacy", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "jumblr-technology-adds-privacy" + }, + { + "text": "While BarterDEX does not require non-relaying nodes to publicly share their IP addresses, it is important to note that BarterDEX itself is not private. Instead, we use Jumblr, an accompanying Komodo technology, to provide privacy options.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "jumblr-technology-adds-privacy" + }, + { + "text": "Users should assume that if privacy is important for their given trading activity, they need to employ Komodo’s additional privacy technology, Jumblr. On the surface, non-relaying nodes perform addressing via a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "jumblr-technology-adds-privacy" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "jumblr-technology-adds-privacy" + }, + { + "text": " pubkey, and the IP address of one non-relaying node is normally not directly shared with their accompanying non-relaying trading partner. However, full-relay nodes are capable of monitoring IP addresses at the lower levels of the network, and therefore a malicious actor would be able to link IP addresses of non-relay nodes to pubkeys, thus uncovering the most crucial aspects of their privacy.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "jumblr-technology-adds-privacy" + }, + { + "text": "Iguana Core Provides the Foundation for Our \"Smart Address\" Feature", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "BarterDEX itself is a fork of one our earliest codebase experiments, Iguana Core, which we briefly encounter in each part of this paper. All BarterDEX transactions that use the atomic-swap protocol are created and signed in a format that is managed\nby the Iguana Core codebase. This enables a powerful combination of features.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "The following page is a high-level discussion of one method that Iguana Core supports the fluidity of the Komodo ecosystem. Newcomers to the cryptocurrency industry and those who are not familiar with developer language may find this section too challenging to understand. We welcome the reader to simply read the two warnings below, and then to skip to the next section.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Some of the features that Iguana Core enables are highly advanced, and therefore users interacting with BarterDEX and other Iguana-compatible GUI software applications should always perform proper research and exercise caution.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "The important thing for users to understand is that they should be careful not to spend the same funding in two different standalone apps. In other words, if they are trading with funds in a BarterDEX GUI, they should not also try to spend those funds in their Agama Wallet (or another Iguana- compatible wallet). Instead, they should wait for both apps to be in sync before moving forward.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "One specific feature is a specialty wallet that can manage and trade among a multiplicity of different blockchain coins. To explain the significance of this multi-coin wallet feature, let us observe how a standalone GUI app formerly interacted with cryptocurrencies.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Previously, for a GUI software application to manage cryptocurrencies, the soft- ware application usually required the creation of a wallet.dat file, which is locally stored on the user’s computer. This wallet.dat file held the privkeys—passwords that unlock funds on a blockchain—and other encryption-enabled protocols necessary for the user to manage funds. There are many limitations in the wallet.dat method. For instance, typically only one software application should access the wallet.dat file at a time, to prevent data conflict and corruption.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "The Iguana Core codebase enables the user to interact with their funds on the blockchain(s) without requiring a wallet.dat file. Because the Iguana Core codebase works with raw transaction data, the codebase allows a user to first create and then manage a public blockchain \"smart address\" that can be accessed from anywhere, by any compatible standalone GUI, simply with a passphrase that unlocks their privkey.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "To maintain control over their funds without requiring a wallet.dat file, users need only create a smart address and then retain a copy of the accompanying passphrase (typically a collection of 12 to 24 common dictionary words arranged in a specific order) that is provided at the moment of creation. By entering this passphrase into an Iguana Core compatible standalone GUI app, Iguana Core then activates their ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": ", which then enables users to manage their funds.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Furthermore, the smart address created by Iguana Core can manage and maintain multiple types of coins and other blockchain assets. When a user activates any com- patible coin using the Iguana-Core passphrase, Iguana Core can store these coins in a separate address that is compatible with the appropriate blockchain and link this sub-address to the other addresses unlocked by the Iguana-Core passphrase.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Therefore, in the underlying Iguana code, each of the unique coins gets an address that is compatible with its own blockchain, but the Iguana-Core passphrase enables the user to access these coins all at once. Therefore, a BarterDEX GUI app can use this passphrase to enable users to actively trade between a multiplicity of coins.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "One key function of the Iguana codebase that makes this possible is the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": " command in the Iguana Core API. It is this command that allows individual GUI apps, such as a standalone BarterDEX GUI app, to work with the underlying funds in the user’s addresses. Notice several of the freedoms this provides to the user. All the funds are only spendable by the user with the passphrase. Because there is no need for a wallet.dat file to be stored locally, there is less danger (though users should exercise caution) of data corruption between different standalone software applications that are accessing these funds.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Therefore, an end-user can have a standalone BarterDEX GUI app running on their local machine, which they use to trade, and can also have a separate standalone GUI wallet app that is managing their long- term cryptocurrency holdings.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "This also allows standalone GUI applications that are Iguana-Core compatible to support each other. For instance, while a BarterDEX GUI can function without any native-coin daemon process running in the background simply by relying on Iguana Core and public Electrum SPV servers (which remove the need to download blockchain data), the BarterDEX GUI can also work with a native wallet’s coin daemon background process to coordinate blockchain synchronization.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "For instance, a Komodo user may run the Komodo Agama wallet, which runs a native Komodo coin daemon (and has a local wallet.dat file), alongside a BarterDEX GUI app. Iguana Core can then enable the BarterDEX GUI to rely on the native coin daemon running in the background of the Komodo Agama wallet, which speeds up the trading process for an end-user, as they do not have to wait for the public Electrum servers to update. The native Komodo coin daemon is the software we encountered in ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Part II", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "komodod", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "Part II", + "tagName": "a", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "iguana-core-provides-the-foundation-for-our-smart-address-feature" + }, + { + "text": "The UTXO: an Elusive, Yet Fundamental Concept", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "BarterDEX relies heavily on a rarely understood technology called the \"UTXO,\" short for Unspent Transaction, which was invented in the original Bitcoin protocol. This technology is fundamental to the operations of any blockchain project that utilizes the original Bitcoin protocol. However, even the most active of cryptocurrency users rarely know what UTXOs are or why they exist.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "Because UTXOs play an important part in BarterDEX, and to provide a pleasant user experience, it is essential we adequately explain the UTXO concept. In the future, as the technology surrounding BarterDEX iterates, and as the cryptocurrency community continues to learn, we hope that the concept of UTXOs will be less taxing on a user’s learning curve.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "To begin our explanation of UTXOs, let us first examine the language of a common user when describing how much cryptocurrency money they have and how they perceive those funds. We will therefore need to understand the concept of \"satoshis,\" the way a blockchain handles the collection and distribution of funds, and how we utilize these core technologies when trading on BarterDEX.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "Comparing the UTXO to Fiat Money", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Let us assume a cryptocurrency user, whom we name Charlie, has $10,000 in his physical wallet. Naturally, when Charlie thinks about the amount of physical (or \"fiat\") money he has, he says to himself, \"I have $10,000.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "However, there is no such thing as a $10,000-dollar bill. Instead, Charlie actually has a collection of smaller bills stacked together. For instance, he could have a stack of $100-dollar bills, the total of which equals $10,000 dollars.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "If Charlie goes to purchase an item that costs $1, and he only has $100-dollar bills in his wallet, to make his purchase he will take out a single $100-dollar bill and give it to the cashier. The cashier then breaks that $100-dollar bill down into a series of smaller bills. The cost for the item, $1, remains with the cashier, and the cashier then provides change—perhaps in the form of one $50-dollar bill, two $20- dollar bills, one $5-dollar bill, and four $1-dollar bills.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Charlie now thinks to himself, \"I have $9,999.\" Specifically, however, he has ninety- nine $100-dollar bills, a $50-dollar bill, two $20-dollar bills, one $5-dollar bill, and four $1-dollar bills.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "We emphasize that not only does he not have ten thousand $1-dollar bills, he also does not have one million pennies ($0.01). Furthermore, because pennies are the small- est divisible unit of value in Charlie’s wallet, we could point out that each bill is a collection of its respective units of pennies. For instance, a $1-dollar bill in Charlie’s wallet we could describe as, \"a bill that represents a collection of one hundred pennies and their value.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Understanding Cryptocurrencies and Their UTXOs", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "understanding-cryptocurrencies-and-their-utxos" + }, + { + "text": "A Satoshi is The Smallest Divisible Unit of a Cryptocurrency", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "Continuing with our explanation of UTXOs, we next need to understand the concept of \"satoshis.\" The name \"satoshi\" is derived in honor of Satoshi Nakamoto, author of the original Bitcoin white paper. By convention in the cryptocurrency community, one satoshi is equal to one unit of a coin at the smallest divisible level. For instance, 1 satoshi of Bitcoin is equal to 0.00000001 BTC.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "Let us suppose now that Charlie has 9.99000999 BTC (Bitcoin) in his digital wallet. Assuming Charlie correctly understands the concept of satoshis, Charlie could say to himself, \"I have nine hundred and ninety-nine million, nine hundred and ninety-nine satoshis of bitcoin.\" This is how Charlie might mentally perceive the collection of money that exists in his digital wallet, like he perceives the $9,999 in his fiat wallet.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "A UTXO is a Packet of Satoshis, just as a Fiat Dollar Bill is a Packet of Pennies", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Recall now that with fiat money, Charlie did not think about how his original $10,000 was comprised of smaller individual $100-dollar bills. Similarly, Charlie also does not think about how his 9.99000999 BTC could be comprised of smaller collections of satoshis.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Furthermore, just as Charlie did not carry around fiat money as a collection of pennies, he also is not carrying around a raft of satoshis. Were he to try to carry a million pennies in his physical wallet, the weight of the wallet would be unmanageable. Similarly, if the Bitcoin protocol were to attempt to manage nine hundred and ninety-nine million, nine-hundred and ninety-nine satoshis, the \"data weight\" would be so heavy, the Bitcoin protocol would be enormous and unmanageable.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To optimize \"data weight,\" the Bitcoin protocol therefore bundles up the satoshis into something that is like the example of dollar bills earlier, but with one important difference. In fact, here is where the Bitcoin protocol exercises a superiority over fiat money by deviating from the limitations fiat money must obey when bundling smaller values into larger values.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "In fiat money, one hundred pennies are bundled into a one-dollar bill, which can then be bundled into a larger bill, and so on. All the sizes of fiat money are preset and predetermined by the issuer of the fiat money when they print their bills and coins.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The Bitcoin protocol, however, does not need to pre-plan the sizes of \"bills\" (i.e. the collections of satoshis) in the owner’s wallet. Bitcoin is freer in this sense; it can shift and change the sizes of its \"bills\" at will because there is no need to accommodate for the printing of physical coins and paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Instead, the Bitcoin protocol allows for the developer of digital wallets to write code that can optimize how bitcoin satoshis are packaged into \"bills,\" and thus the community of developers can work together to keep the data weight of the blockchain manageable. The better the digital-wallet developer, the more efficient the size of the \"bills\" (a.k.a. the packets of satoshis).", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The Bitcoin protocol does have one limitation, however: It must keep track of how these satoshis are being collected into larger \"bills\" in everyone’s digital wallets. After all, the very idea of Bitcoin stands in the idea that everything happens under the public eye, where it can be verified. Because the Bitcoin blockchain must keep track of the sizes of these packets of satoshis, the only time the packets can be assembled or disassembled into larger and smaller sizes is at the moment when the user is spending money on the public blockchain. It is at this time that the user is under the public eye, and therefore his actions can be verified.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To compare this limitation to fiat money, consider the effect created were Charlie to cut a $100-dollar bill into smaller pieces. The $100-dollar bill would no longer be respected as a valid form of currency.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "As the word, \"UTXO,\" is not a sonorous word, some users in the Komodo ecosystem simply refer to UTXOs as \"bills.\" The concept is effectively the same. However, as the rest of the blockchain industry primarily uses the word \"UTXO,\" we frequently must use this word to maintain a common line of communication. The word UTXO will be used throughout the rest of this white paper, to keep in line with industry practices.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The UTXO packet can be any size, and the developer of the GUI software decides on this process. Most importantly, and to reiterate, a UTXO can only be resized during the process of spending, as this is the moment when the user interacts with the public blockchain.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To further clarify this, let us return to Charlie’s example with fiat money. Recall that when Charlie went to purchase a $1-dollar item, he only had $100-dollar bills in his wallet. He had to give out one $100- dollar bill, and then receive a broken-down collection of dollar bills in return.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This is exactly how it works with UTXOs. Charlie has a collection of UTXOs in his digital wallet. When he goes to buy something, he will give out UTXOs until he surpasses how much he owes, and then the extra change from the last UTXO used will be broken down and returned to him.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "For example, let us suppose that Charlie’s 9.99000999 BTC is comprised of three UTXOs worth the following values:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| UTXOs in Charlie’s Wallet | Value |\n| ------------------------- | -------------- |\n| UTXO #1: | 0.50000000 BTC |\n| UTXO #2: | 0.49000999 BTC |\n| UTXO #3: | 9.00000000 BTC |\n| Total | 9.99000999 BTC |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Charlie now desires to purchase an item that costs 0.60000000 BTC. He will have to hand out enough UTXOs from his wallet until he covers the costs of this transaction, just as he would if he were using fiat money. The Bitcoin protocol calculates the change from the transaction and then returns his change to him.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Remember that there is a fee when spending money on a blockchain. Since we are using Bitcoin in this example, the fee would be paid to cryptocurrency miners. Let us imagine that the fee the miners charge Charlie is 999 satoshis.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "We begin by looking at how Charlie would see the process of making the purchase, assuming he does not understand the concept of UTXOs. For now, Charlie only understands how much is in his wallet at the satoshi level as he conducts his transaction:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| ------------------ | ----------------------------------------------------------------- |\n| 9.99000999 BTC | The amount Charlie initially owns |\n| (-) 0.60000000 BTC | The amount Charlie sends to the digital cashier for his purchase |\n| (-) 0.00000999 BTC | The network fee paid to miners |\n| ------------------ | ----------------------------------------------------------------- |\n| 9.39000000 BTC | The amount left in his wallet |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This deduction for his purchase all appears very simple to Charlie—a testament to\nthe Bitcoin protocol’s effective design.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "In the background, however, the digital wallet handles the UTXOs and the change process in a manner as determined by the programmer. In Charlie’s example, let us assume that it proceeds this way:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| ------------------------ | ------------------------------------------------------------------------ |\n| 0.60000999 BTC | The total amount that Charlie owes to the cashier and network |\n| ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "(-) 0.50000000 BTC", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " | The wallet sends the full value of ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "UTXO #1", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " to the digital cashier |\n| ------------------------ | ------------------------------------------------------------------------ |\n| 0.10000999 BTC | This is the remaining total amount that Charlie still owes |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The wallet now brings out UTXO #2, which is worth 0.49000999 BTC:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This UTXO is broken down or shattered into smaller pieces.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| -------------------- | ---------------------------------------------------------------------- |\n| 0.49000999 BTC | The size of Charlie’s ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "UTXO #2", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": ", now in the process of change |\n| (-) 0.10000000 BTC | This shatter of ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "UTXO #2", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " goes to the cashier (payment fulfilled) |\n| (-) 0.00000999 BTC | This shatter of ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "UTXO #2", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " pays the network fee to the miners |\n| -------------------- | ---------------------------------------------------------------------- |\n| 0.39000000 BTC | This last shatter now returns to Charlie’s wallet as a new UTXO |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Charlie now has one new UTXO in his wallet, and it is worth 0.39000000 BTC:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Charlie’s New Wallet State | Value |\n| ---------------------------- | ---------------- |\n| UTXO #3: | 9.00000000 BTC |\n| UTXO #4: | 0.39000000 BTC |\n| ---------------------------- | ---------------- |\n| Total | 9.39000000 BTC |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "If Charlie wants to buy something later, these UTXOs will have to be broken up once more, according to the costs and programming of the digital wallet. Again, whatever is left over from his last UTXO comes back to his own wallet as a new UTXO.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Now let us suppose that Charlie receives 0.4 BTC from someone else. In Charlie’s wallet, he will see a total of 9.79 BTC. However, in his wallet there are now actually three UTXOs:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Charlie’s New Wallet State | Value |\n| -------------------------- | -------------- |\n| UTXO #3: | 9.00000000 BTC |\n| UTXO #4: | 0.39000000 BTC |\n| UTXO #5: | 0.4000000 BTC |\n| Total | 9.79000000 BTC |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "As a result, the number and sizes of UTXOs in Charlie’s wallet will vary over time. He may have many smaller UTXOs that make up his full balance, or sometimes he might just have one large UTXO that comprises all of it. For Charlie, it is normally possible to ignore this since the wallet developer could handle everything automatically.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "However, understanding the nature of BarterDEX currently encourages users to understand UTXOs, as the process relies on their UTXO inventory during trading, as explained below.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Trading on Barterdex", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "From our point of view as developers, the most difficult aspect of creating BarterDEX was in matching the inventory of UTXOs between trading partners.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "To illustrate this complexity, let us briefly return to the example of Charlie and fiat currency. Let us suppose that Charlie has only a $50-dollar bill in his wallet and wants to spend $35 dollars at a videoarcade. He needs to trade $35 for the equivalent number of video-game tokens. However, he can only work with the bill that is in his wallet to trade for the tokens.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "In a typical arcade, this process is simple. There are just two currencies—his dollars and the video game tokens—and he will have a human cashier available to manage the trade. He gives the $50-dollar bill to the human cashier, and the cashier returns $15 dollars in dollar bills, and $35 dollars’ worth of video-game tokens.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "In creating BarterDEX, however, our goal is to decentralize all points of control. (The \"cashier,\" in this sense, is a centralized authority who could be corrupted or could commit human error). That means that we cannot have a human cashier present in BarterDEX to trade Charlie’s three UTXOs into their appropriate sizes when he wants to swap for other currencies.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "A further challenge lies in the number of currencies. For BarterDEX there are not just two coins, but many coins, with myriad users, each having a variety of unique UTXO sizes in their wallets. In addition, the trading happens in real-time, through automation, on a decentralized peer-to-peer network, supporting a countless number of separate blockchain projects, while providing a speed and (eventually) liquidity comparable to that of a centralized exchange. All of this must be accomplished while maintaining a level of security and safety that only decentralization can provide.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "Finally, imagine if there were no cashier to break down Charlie’s $50-dollar bill. What if instead, he had to approach other arcade customers to barter for their tokens? This would create a difficult scenario for Charlie.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "In its current iteration (continuing the use of the $50-dollar metaphor as applied to UTXOs), we limit BarterDEX’s capability to only perform a trade for Charlie’s $50-dollar bill in exchange for the currency that another customer holds. BarterDEX does not provide a service whereby Charlie can break down his $50-dollar bill into a convenient set of $10-dollar and $5-dollar bills for trading. He must give up his full $50-dollar bill for whatever he wants in return.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "The process of breaking down UTXO inventory, therefore, is both in the hands of the user and in those of the developers creating the standalone GUI apps. We are working with our community to simplify this process. Naturally, it is complex and will take time. Therefore, we recommend that users who engage with BarterDEX have a basic understanding of their UTXO inventory and how they are bartering with other users before using it.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "trading-on-barterdex" + }, + { + "text": "How BarterDEX Deals with Order Offers and UTXOs", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "When a BarterDEX user offers a trade to the network, the BarterDEX protocol itself does not prioritize the total number of satoshis that the user offers. Instead, BarterDEX simply looks through the user’s inventory for the largest-sized UTXO that is below the amount the user offered.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "For example, let us suppose that Charlie has 100.01287001 KMD (Komodo coin) in his wallet. It is comprised of three UTXOs:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "| Charlie’s Initial Wallet State | Value |\n| ------------------------------ | ---------------- |\n| UTXO #1: | 90.00000000 KMD |\n| UTXO #2: | 00.01287001 KMD |\n| UTXO #3: | 10.00000000 KMD |\n| Total | 100.01287001 KMD |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "Charlie wants to trade 50.00 KMD on the BarterDEX network. He puts out an order for an alternate cryptocurrency called DOGE (Doge Coin), and he wants to exchange in a 1:1 ratio.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "BarterDEX itself will not attempt to manage for Charlie’s misunderstanding of his UTXO inventory. (The developer of Charlie’s standalone software could try to help him, but that is a separate matter.) Rather, BarterDEX will simply look through his inventory for the largest UTXO that is below the total amount he offered. In this example, BarterDEX will select his UTXO #3, worth 10 KMD. BarterDEX will then calculate the necessary fee, which so happens to be exactly equal to the amount of UTXO #2: 0.01287001 KMD.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "BarterDEX can then take these two UTXOs and facilitate a trade for DOGE in a 1:1 price ratio. Charlie’s final wallet appears as so:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "| Charlie’s Final Wallet State | Value |\n| ---------------------------- | ---------------------------------- |\n| UTXO #1: | 90.00000000 KMD |\n| UTXO #3: | 10.00000000 KMD |\n| Total | 90.00000000 KMD + 90.00000000 DOGE |", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "It is up to Charlie, or to the creators of any standalone GUI wallet, to manage the UTXOs. BarterDEX only manages the matching of the UTXOs once they are created.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "how-barter-dex-deals-with-order-offers-and-utxos" + }, + { + "text": "Detailed Explanations of the Barterdex Process", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "detailed-explanations-of-the-barterdex-process" + }, + { + "text": "With an understanding of the specifics of what BarterDEX is actually trading, we can now approach an explanation of how the trading procedure occurs.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "detailed-explanations-of-the-barterdex-process" + }, + { + "text": "Atomic Swaps on The Komodo BarterDEX", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "atomic-swaps-on-the-komodo-barter-dex" + }, + { + "text": "To facilitate trading among users, BarterDEX implements a variation of the atomic-swap protocol, as described by Tier Nolan on BitcoinTalk.org. The original concept provided by Tier Nolan can be said to be \"ahead of its time,\" as it is both complex and relies conceptually on technology that yet does not exist. Therefore, to create our variation of the atomic-swap protocol, we adapted for the current technology. A thorough study of Nolan’s original exposition can provide a solid background into the tradeoffs that we made as we selected our final version of our atomic-swap protocol.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "atomic-swaps-on-the-komodo-barter-dex" + }, + { + "text": "We emphasize to the reader that the key aspect that we maintained from the original concept is that at each step there are both incentives to proceed to the next step in the proper manner, and disincentives to avoid abandoning the procedure. With this structure in place, regardless of where the protocol stops, each party receives their proper reward. If a party attempts to deviate from the proper path, their funding is penalized to the point of eliminating any potential rewards a user could gain by acting maliciously. These incentives and disincentives create the foundation for the requisite trustless nature of our atomic-swap protocol.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "atomic-swaps-on-the-komodo-barter-dex" + }, + { + "text": "Introducing, Alice and Bob", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "To understand why the atomic-swap protocol is necessary, it is first important to recall that computer code is executed in linear fashion. Even if we were to assume that both parties in a trade may be honest, on a computer the process of taking money from each digital wallet and pulling the money into the open must happen one wallet at a time. Therefore, one person must send out their money first. The atomic- swap protocol protects that person from vulnerability. Without the atomic swap, any malicious party involved (whether it be a full-relay node, trading partner, or other external agent) would be able to destroy the fairness of the trade.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "There are two parties in an atomic swap: the liquidity provider and the liquidity receiver. Once the process of an atomic swap begins, the behavior of each party’s public trading profile is recorded and added to their reputation on the BarterDEX network.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "The process of an atomic swap begins with the person who makes the initial request—this is the liquidity receiver. By convention, we call this person, \"Alice.\" Alice will need two UTXOs to perform her swap. One UTXO will cover the protocol fee, which is roughly 1/777th the size of her desired order. We call this fee the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": ", and its primary purpose is to serve as a disincentive to Alice from spamming the network with rapid requests.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "The second UTXO required of Alice is the actual amount she intends to swap. BarterDEX first verifies that she has these funds, but for the moment she retains these funds in the safety of her own digital wallet.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "On the other side of the atomic swap, we have the liquidity provider—we call this person, \"Bob.\" Bob sees the request on the network for Alice’s atomic swap and decides to accept the trade. Now his part of the process begins.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "To complete the trade, he must also have two UTXOs, but with one important difference: the first UTXO is equal to 112.5% of the amount that Alice requested; the second UTXO is exactly equal to the amount that Alice intends to swap. In other words, Bob must provide liquidity of 212.5% of the total amount of the currency that Alice requests.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "The first UTXO (112.5%) Bob now sends out as a security deposit, placed on the BarterDEX network. The network’s encryption holds the deposit safely in view, but untouchable. We call this UTXO, ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": ". It will remain there until his side of the bargain completes in full, or until Alice’s request for a swap times out. Assuming Bob keeps his promises and stays alert, these funds will be automatically returned to him at the appropriate moment.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "The second UTXO (100%) he retains within the safety of his own wallet for the mo- ment.Performing a successful connection between Bob and Alice, and verifying their requisite UTXOs, is the most complex and difficult aspect of creating the BarterDEX network. Myriad factors are involved in a successful attempt for Bob and Alice to connect: human motivation; the experience level of the users; economics; connection technology; user hardware setups; normal variations within Internet connections; etc.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "We emphasize to users here that the process of performing these actions over a peer-to-peer network has almost an artistic element to it. An attempt to successfully connect Bob and Alice can be thought of more like fishing, where we must simply cast and recast our line until we successfully connect with our target. If a user attempts a trade and no response returns from the network, the user should slightly adjust the parameters of their offer and try again. As BarterDEX continues to iterate and improve, and as the number of users increases, we expect any required effort to lessen for users, the network, and the BarterDEX GUI apps.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "introducing-alice-and-bob" + }, + { + "text": "Alice and Bob Make a Deal", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Assuming Alice and Bob are successfully connected, the process from this point forward becomes quite simple:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "In some cases, it is possible to perform an atomic swap with fewer steps, but for the sake of brevity we will focus only on this scenario.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "A summary of the procedure:", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice requests a swap and sends the ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to the BarterDEX full-relay nodes.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The full-relay nodes receive her request and publish it to the network", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice requests a swap and sends the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to the BarterDEX full-relay nodes.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The full-relay nodes receive her request and publish it to the network", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob sees the request on the network, accepts it, and sends out ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " enters a state of limbo on the BarterDEX network, held safely by encryption, awaiting either Alice to proceed, or for the swap to time out", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " is automatically refunded to Bob via the BarterDEX protocol", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob sees the request on the network, accepts it, and sends out ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " enters a state of limbo on the BarterDEX network, held safely by encryption, awaiting either Alice to proceed, or for the swap to time out", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " enters a state of limbo on the BarterDEX network, held safely by encryption, awaiting either Alice to proceed, or for the swap to time out", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " is automatically refunded to Bob via the BarterDEX protocol", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "If the latter occurs, ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " is automatically refunded to Bob via the BarterDEX protocol", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice now sends her ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to Bob", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "She does not send the payment to Bob directly, but rather into a temporary holding wallet on the BarterDEX exchange, which is encrypted and protected by his private keys", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Only Bob has access to this wallet, via the set of privkeys that only he owns", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "However, the BarterDEX code does not yet allow Bob to unlock this temporary holding wallet; he must continue his end of the bargain first", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will remain in Bob’s temporary holding wallet for a limited amount of time, giving him the opportunity to proceed", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice now sends her ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to Bob", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "She does not send the payment to Bob directly, but rather into a temporary holding wallet on the BarterDEX exchange, which is encrypted and protected by his private keys", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "She does not send the payment to Bob directly, but rather into a temporary holding wallet on the BarterDEX exchange, which is encrypted and protected by his private keys", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Only Bob has access to this wallet, via the set of privkeys that only he owns", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Only Bob has access to this wallet, via the set of privkeys that only he owns", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "However, the BarterDEX code does not yet allow Bob to unlock this temporary holding wallet; he must continue his end of the bargain first", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "However, the BarterDEX code does not yet allow Bob to unlock this temporary holding wallet; he must continue his end of the bargain first", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will remain in Bob’s temporary holding wallet for a limited amount of time, giving him the opportunity to proceed", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will remain in Bob’s temporary holding wallet for a limited amount of time, giving him the opportunity to proceed", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob now sends his ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to Alice", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Again, this is not sent to Alice directly, but rather into yet another temporary holding wallet", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Likewise, only Alice has access to the necessary privkeys for this wallet", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will automatically be refunded if she does not complete her part of the process", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob now sends his ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " to Alice", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Again, this is not sent to Alice directly, but rather into yet another temporary holding wallet", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Again, this is not sent to Alice directly, but rather into yet another temporary holding wallet", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Likewise, only Alice has access to the necessary privkeys for this wallet", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Likewise, only Alice has access to the necessary privkeys for this wallet", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will automatically be refunded if she does not complete her part of the process", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "The ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " will automatically be refunded if she does not complete her part of the process", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice now \"spends\" the ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "By the word \"spends,\" we simply mean that she activates her privkeys and moves all the funds to another wallet—most likely to her smart address", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX registers that Alice’s temporary holding wallet successfully \"spent\" the funds", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Alice now \"spends\" the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "By the word \"spends,\" we simply mean that she activates her privkeys and moves all the funds to another wallet—most likely to her smart address", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "By the word \"spends,\" we simply mean that she activates her privkeys and moves all the funds to another wallet—most likely to her smart address", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX registers that Alice’s temporary holding wallet successfully \"spent\" the funds", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX registers that Alice’s temporary holding wallet successfully \"spent\" the funds", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob \"spends\" the ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Likewise, Bob simply moves the entirety of the ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " into a wallet of his own—again, it will most typically be his own smart address", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX now knows that Bob also successfully received his money", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Bob \"spends\" the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Likewise, Bob simply moves the entirety of the ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " into a wallet of his own—again, it will most typically be his own smart address", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX now knows that Bob also successfully received his money", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Seeing both temporary holding wallets now empty, the BarterDEX protocol recognizes that the atomic swap was a complete success.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX now refunds ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " back to Bob and the process is complete.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Seeing both temporary holding wallets now empty, the BarterDEX protocol recognizes that the atomic swap was a complete success.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "BarterDEX now refunds ", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": " back to Bob and the process is complete.", + "tagName": "li", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "While it may seem inefficient to have seven transactions for a swap that could be done with two, the complexity of this process provides us with the requisite \"trustless-ness\" to maintain user safety.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alice-and-bob-make-a-deal" + }, + { + "text": "Incentives and Disincentives to Maintain Good Behavior", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "As we will now explain, at every step along the way there are incentives for each side to proceed, and there are various financial protections in place should one side fail. Also, because payments are sent to these \"temporary holding wallets\" that exist within the BarterDEX protocol, the protocol itself can assist in the process of moving money at the appropriate steps. Let us now examine what is happening at each step.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "1 - Alice Sends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "If Bob accepts the offer to trade, but does not send ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": ", Alice only stands to lose her ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": " UTXO. This is only 1/777th of the entire transaction amount, so she loses very little. Bob, on the other hand, stands to lose more. Since Bob did not follow through with his end of the bargain, the BarterDEX network indicates on his public BarterDEX trading profile that he failed in a commitment, thus decreasing his profile’s reputation. If Bob continues this behavior as a habit, he may find it difficult to discover trading partners.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "So long as the frequency of \"Bobs\" failing is low, the occasional extra ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": " paid by an Alice is a minor issue. However, if there is a sudden spike in misbehavior, the BarterDEX code has in-built contingency plans which can provide refunds to Alice(s), should a particular Alice node(s) experience a large loss via ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "s.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee" + }, + { + "text": "2 - Bob Successfully Sends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "If Alice does not follow with her next step, the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": ", then Alice loses not only the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": ", but she also receives a mark on her public BarterDEX profile. She gains nothing, and Bob has no reason to fear as ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": " will automatically return to him via the BarterDEX protocol.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit" + }, + { + "text": "3 - Alice Successfully Sends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "If Bob does not proceed with his next step, the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": ", then after 4 hours Alice can simply activate a BarterDEX protocol that will allow her to claim ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": ". Recall that ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": " is 112.5% of the original intended trade; Bob has every incentive therefore to continue with his end of the bargain, and Alice has noth- ing to fear should Bob fail. She even stands to gain a 12.5% bonus, at Bob’s expense.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment" + }, + { + "text": "4 - Bob Sends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "Now, if Alice does not follow by \"spending\" the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": " (i.e. taking the money out of the temporary holding wallet and into her own smart address), then after 2 hours Bob can activate a BarterDEX protocol that allows him to reclaim his ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": " immediately. Furthermore, four hours later Bob may activate a refund of ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "; Bob is safe from Alice, should she fail. For Alice, the BarterDEX protocol allows Alice to reclaim her ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": " after Bob reclaims both of his payments.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "Everything herein is recorded to the respective users’ BarterDEX trading profiles, ensuring their reputations are on the line. Recall also that the BarterDEX protocol requires each step to be performed in the proper order, thus ensuring that neither party can take any funds before the users’ appropriate moment.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "Thus, at this integral stage of the process, every step of the path is intricately interconnected and maintains various levels of protection.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment" + }, + { + "text": "5 - Alice Spends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "At this point, Alice is entirely through with any risk to her reputation, her ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": " payment, or of the loss of her time.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "If Bob does not follow by also \"spending\" the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": ", it is of no concern to Alice because she has already received her funds. If Bob is simply sleeping and forgets to spend the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": ", he can only hurt himself.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "Naturally, for Bob this is slightly dangerous. Bob’s best course of action is to remain alert and spend the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": " once it is received.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "If after four hours, Bob is still sleeping, Alice can still activate the protocol that allows her to claim ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": ". In this scenario, she receives both the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": ", at only the costs of the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "Bob can still make a later claim for the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": " when he regains his awareness.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobpayment-2" + }, + { + "text": "6 - Bob Spends ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "Assuming all has gone according to plan, and having spent the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": ", Bob may now reclaim ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": ". Just as before, if Bob does not refund his own deposit, it is his loss; in four hours Alice will be able to activate a claim on ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "alicepayment-2" + }, + { + "text": "7 - Bob Reclaims ", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "The process is complete. Alice received the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": ": Bob received the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": ": Bob has ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": " back in his own possession. The entire process only cost Alice the original ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": ". At each step along the way, the side that needs to take the next step is motivated to do so, with greater and greater urgency until the process is complete.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "bobdeposit-2" + }, + { + "text": "Additional BarterDEX Atomic Swap Details", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "The BarterDEX implements the above series of commands in a cross-platform man- ner, enabling users to atomic-swap trade with coins of many types, including both native coin daemon’s and those that run on SPV Electrum servers. A swap that is not completed immediately can carry on while the time has not expired within the BarterDEX protocol.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "Naturally, users must understand that outside forces can disable the process and thereby damage one of the users. For instance, an Internet outage for Bob could be particularly dangerous. Therefore, users are advised only to trade manageable sums that they are willing to put at risk, and only with nodes that have reliable reputations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "This atomic-swap protocol, with all its cryptographic validations and intricate key exchanges, is less than half of the difficulty Komodo experienced in creating BarterDEX. Relatively speaking, it is \"easy\" to do an atomic swap in isolation between two test nodes, using UTXOs that are carefully prepared for the test.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "It is an entirely different matter to open this up to the public at large, including the enabling of our orderbooks and order-matching features. Due to the peer-to-peer nature of The BarterDEX, on a live network it is impossible to guarantee that a user that indicates they would like to begin a swap will receive a successful reply.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "For instance, a Bob may see a potential swap that he would like to make, but by the time his attempt to accept the swap crosses the expanse of the Internet, someone else could have already accepted the swap, thus leaving Bob in his original position. There are legion scenarios wherein the initial connection can fail. Once the connection is made, however, the rest of the process maintains reliability and user safety.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "Failed attempts at establishing a connection only result in the loss of a few seconds of the user’s time, and there is no cost associated with the failure. The ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": " paid by an Alice never occurs, and BarterDEX disregards Bob’s attempt to send ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "Therefore, while we cannot guarantee that BarterDEX will always form a valid connection for each attempt at a trade, we can offer comfort in knowing that the users’ losses in these scenarios are insubstantial.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "additional-barter-dex-atomic-swap-details" + }, + { + "text": "A More Detailed Explanation of the Atomic-Swap Connection Process", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "The following is a brief explanation of the complex process by which BarterDEX establishes a connection between Alice and Bob.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "For BarterDEX to accept a request to begin an atomic swap, the code first needs to register and create all the necessary backend elements for the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": ", ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": ", and ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": ". All four must be specified before BarterDEX can indicate to Alice and Bob that it can successfully support this atomic swap.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "This is more complicated than it appears. As we explained earlier, most users do not understand the true nature of how funds operate in a cryptocurrency. Rather, most simply view their balance as a single conglomerate of coins that they can spend at the \"satoshi level.\" This misperception is important to correct to understand how BarterDEX performs an atomic swap.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Naturally, because users have varying sizes of UTXOs in their wallets, the true challenge in creating BarterDEX was to create a method of maintaining a network that would coordinate each user’s list of UTXOs in their wallets, and to allow them to match with other users in trading pairs. In addition, BarterDEX also automatically calculates the appropriate mining and transaction fees for the blockchains involved, according to a speed that maintains an optimized atomic-swap process.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "As we created the necessary code to make the atomic swap possible for the public, we found that it is not practical to have the user specify which UTXO pair they have sitting in their wallet when choosing to make a swap. This would also not be intuitive for the user. Furthermore, we did not even want to code a way for an Alice to know the UTXOs a Bob has available at the moment of negotiating a trade.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Instead, here is how BarterDEX deals with the complexity of matching these unbroken and mismatching UTXOs to process an atomic swap. It is important to note that users are not required to have a sophisticated understanding of the backend UTXO process, and may simply trade using either a minimal understanding of UTXO inventories, or at least rely on the support of a cleverly coded standalone BarterDEX GUI app.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Assuming Alice has already indicated she desires to perform an atomic swap, BarterDEX calculates out the proper divisions of her UTXOs, defines how they will be appropriated during the process, and sends an \"Alice Request\" to Bob with information regarding her pair of UTXOs (which are the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": " and the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "). Also, BarterDEX verifies her desired price and volume.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Bob, the human user (or an artificial-intelligence bot acting on his behalf), indicates that he is willing to accept the trade. The automation of the BarterDEX Bob-side protocol now takes over in the background. It validates the \"Alice Request\" to make sure the UTXO pair is valid, and then the Bob-side protocol scans through Bob’s UTXO inventory for the most efficient way to create both the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": " UTXOs.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "The Bob-side protocol understands that the UTXOs will not perfectly match, and it will therefore calculate the most efficient method of making any \"spare change\" UTXOs as needed. An additional constraint the protocol needs to consider is that the result must match the price and volume Alice wants to pay. Finally, it accounts for the requirement that ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": " be at least 12.5\"Alice Request.\" (Note that BarterDEX is directly involved with managing Bob’s UTXOs, but is not involved with managing Alice’s UTXO offers.)", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Once BarterDEX verifies all these conditions, the Bob-side protocol sends back a data packet, labeled \"reserved,\" to the Alice-side protocol to indicate that all is in order. All of this is optimized andconducted in a manner that prevents the human Bob from having his funds frozen in an unnecessary deposit duty, should the human Alice find another \"Bob\" in the interim.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Next, the Alice-side protocol validates the \"reserved\" packet from the Bob-side protocol, making sure all the UTXOs are valid, and the protocol verifies that the price and volumes are acceptable according to the original intent.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Assuming everything successfully validates, the Alice-side protocol sends a \"connect\" packet back to the Bob-side protocol with the same parameters, indicating that her funds are now \"reserved\" as well.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "Between the \"request\" being sent and the \"reserved\" packet being received there is a 10-second timeout which prevents Alice from making further trade requests. This gives BarterDEX the time necessary to perform all the calculations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "This 10-second timeout also provides a contribution to what we call \"whale resistance\" during the Komodo dICO process. Whale resistance is a way Komodo and BarterDEX resist \"whales\" from purchasing an entire coin supply and thus forcing an artificial market scarcity.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "The Bob-side protocol now validates Alice’s \"connect\" packet and, assuming everything is in order, the protocol starts a new Bob-side thread of code, thus beginning the actual atomic swap. The Alice-side protocol also receives the \"connect\" packet, verifies, and then starts an Alice-side thread of code.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "There is one more \"negotiation\" step that is needed between the Alice-side and Bob-side protocols: in the event the two sides to the protocol do not achieve consensus, the entire atomic swap aborts without any payments sent from either party (i.e. \"no harm, no foul\").", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "(", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "This final negotiation could have been included earlier, but due to the way the atomic swap organically developed during our creation process, it ended up inside the atomic-swap protocol itself.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": ")", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "The Alice-side and Bob-side protocols have now properly performed their duties, and thus completed the most challenging aspect of the atomic-swap protocol. BarterDEX returns control to the humans (or bots acting on their behalf) to send their respective payments.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-more-detailed-explanation-of-the-atomic-swap-connection-process" + }, + { + "text": "The DEX Fee: ", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "People will notice that there is a small ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " required as part of the BarterDEX protocol. This is 1/777 of the transaction amount and it is calibrated to make spam attacks impractical. By forcing a would-be attacker to spend real money, attacking the network becomes costly. Without this spam prevention, the BarterDEX could otherwise be attacked at the protocol level by any person performing a plethora of trade requests.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "The 1/777 fee ends up being equal to 0.1287% of the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "; this is already far less than the fees paid on an average centralized exchange. Also, centralized exchanges charge both sides of the trade, so even if they charge you 0.2%, they are actually harvesting 0.4% in total fees between both parties.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "Furthermore, they often have fees and limitations for withdrawing funds, as well as a lengthy, challenging, or invasive registration processes. BarterDEX has none of these things. Users need only record the passphrase they create when first entering the BarterDEX software, and they are prepared to trade.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "It is possible that some atomic swaps can initiate, and then fail to complete, which raises questions about what happens to the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": ". The ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " is the first charge in the protocol; in this sense, there is a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " charged for these failed atomic swaps.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "However, this failure should not be looked upon in isolation. The BarterDEX pro- tocol is based on statistics. Statistically speaking, there will be some percentage of atomic swaps that start and will not complete. Let us suppose a 15% failure rate at this stage of the atomic swap (15% is three times higher than the rate of failure we currently observe in our testing). Even in this scenario, the effective ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " cost is still only 0.15% to all Alice-side requests across the entire network.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "Therefore, if you experience the loss of a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " transaction for an atomic swap that fails to complete (which would be due to a failure to receive a response from Bob), know that this is all part of the statistical process. If you find yourself paying more than 0.15% of your completed trades in ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "’s, please let us know. This would be a highly unusual statistical outlier, and we will therefore want to investigate.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "As an organization, when speaking generally to our audience online, we state that the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": " is just 0.15%. In this manner, we hope to create the expectation that 0.15% is normal; if the network performs perfectly, on the other hand, users will get a blessing in the form of a lower fee, 0.1287%.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dexfee-2" + }, + { + "text": "Dealing with Confirmations", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Since BarterDEX is trading permanently on blockchains (as opposed to updating an internal database of vouchers, or managing a proxy-token account balance), both sides of the trading pair need to wait and watch as miners on the respective blockchains calculate transaction confirmations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Because the payments that occur on one blockchain will proceed regardless of the actions on the other blockchain (i.e. a confirmation failure on one chain will not stop with the other blockchain performing its duties as normal), it is therefore important that the BarterDEX protocol observe and adjust as necessary. Each side of the BarterDEX protocol (Bob-side and Alice-side) watches and attempts to provide a level of protection for the human users.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "BarterDEX achieves this protection by an array of ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": " API calls, which gives each side the option to specify how many confirmations they expect before the automated process should be satisfied on behalf of the human users’ interests. The setting for the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": " feature must be decided before the atomic swap begins, as the number of confirmations the users choose will persist until the process completes. If the users have differing preferences for the total ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": " they prefer, the BarterDEX protocol automatically sets the larger of the two preferences as the requirement for both parties. Furthermore, this feature also includes a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": " value to prevent one side from specifying an unreasonable or malicious number of required confirmations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Zero Confirmations", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "BarterDEX also supports a high-speed trading mode. Using this feature, a user can activate an extremely fast mode of trading: ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": ". This initiates a form of atomic-swap trading that does not wait for any confirmations at all. When using this feature, atomic swaps can be completed in as little as three seconds. This is a high-risk endeavor, naturally, and users should exercise extreme caution when implementing it.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "One potential application for the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": " feature is to allow groups of individuals to form their own organizations where they decide personal trust levels, and work together to correct any mistakes that are made in their accounting endeavors.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "BarterDEX also features a special Trust API that users can enable for themselves and groups that they form to indicate how much they trust different traders. By default, the Trust API is set to neutral for all users. A group of users can form their own organization and develop a trusted network for trading, using the Trust API to set each other’s trader profile to Trust = Positive. In such cases, if a user, or a group of users, tells the Trust API to set another trader profile to Trust = Negative, that trader’s ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": " is blacklisted for any of the participating individuals or groups.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "zero-confirmations" + }, + { + "text": "Speed Mode: An Experimental Feature Using Time-Locked Deposits", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "Using the ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": " protocol, we developed a new feature for the BarterDEX network that is functional, but still experimental. It is called \"Speed Mode,\" and it adds one additional step to the Alice and Bob process.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "Alice places a one-time security deposit of an amount equal to or greater than the amount she would like to actively trade without waiting for confirmations. This security deposit is sent to a conditional p2sh wallet address (presently controlled by the Komodo team). Alice indicates within her security-deposit transaction the amount of time the deposit should remain in the wallet. The p2sh wallet will lock the funds from Alice’s end until the completion of the expiration date, though the wallet will allow the Komodo team to access the funds if necessary. This is called a \"time-locked deposit.\" After her chosen date of expiration, she can reclaim her security at any time. Note that her KMD funds continue to be eligible for earning 5.1% rewards.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "This enables Alice to participate in our experimental Speed Mode feature, a fully automated protocol that tracks users’ trading activities and monitors their uncon- firmed swaps against their time-locked deposits. While using Speed Mode, Alice can trade funds of amounts smaller than her time-locked deposit. (The Bob that accepts her request must also be willing to engage in the Speed Mode feature.)", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "Her trading partners dynamically decrease her trust level as she trades, monitoring the amount of her unconfirmed transactions against her total security deposit. Should she reach an unconfirmed trading capacity that is roughly equal to the amount in her deposit, the protocol blocks her from participating in the Speed Mode feature until her funds obtain more clearance through notarization on their respective networks.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "Should Alice attempt to cheat during any period of zero confirmations, the Komodo team can activate the p2sh wallet security deposit and deduct the amount of her offense, and a penalty fee, from her security deposit to compensate the affected parties. The remainder will be available for her to reclaim at the date of the original expiration, at the latest.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "With the security deposit in place, Alice can use the Speed Mode feature to complete a trade in as little as three to five seconds. Note that this feature is new, highly experimental, and we recommend users exercise extreme caution when participat- ing. If a user cannot activate Speed Mode, BarterDEX defaults to the normal, non-", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": " atomic-swap trading method.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "speed-mode-an-experimental-feature-using-time-locked-deposits" + }, + { + "text": "Realtime Metrics", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "realtime-metrics" + }, + { + "text": "Nodes on BarterDEX use Realtime metrics (RTmetrics) to filter the possible candidates for atomic-swap matching. All nodes track global stats via a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "realtime-metrics" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "realtime-metrics" + }, + { + "text": " file. This log file allows each node to self-update the list of pending swaps on the network. By nature, the BarterDEX protocol has filters that give less priority to nodes that are already occupied. Additionally, the Alice-side protocol gives less preference to Bob-side protocols that do not have enough UTXO sizes visible in the orderbook. This is a new feature, and we expect to optimize and enhance it in future iterations.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "realtime-metrics" + }, + { + "text": "Orderbook Propagation", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "When considering how prices compare between two cryptocurrencies, BarterDEX uses the convention of \"base/rel,\" which can be translated as \"base currency to rele- vant currency.\" The price is calculated by determining (base currency)/(relevant currency). The relevant currency is the cryptocurrency Alice is using to make the initial purchase, and the base is the currency Alice intends to buy.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "To construct a public orderbook, a node needs to have price information. Since BarterDEX communicates primarily by means of pubkeys, the price for each currency must naturally be obtained from a pubkey. In the long run, for orderbook performance, we will need a specific ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "/", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": " for each node, as each individual node could have hundreds of UTXOs. Currently, propagating all this information globally would use an excessive amount of bandwidth, so we therefore use a different solution. BarterDEX instead uses a hierarchical orderbook, where the skeleton of the orderbook is simply the (pubkey)/(price) for any (base)/(relevant) pair.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "This means that purchasing a cryptocurrency at the (base)/(relevant) price is directly comparable to selling the cryptocurrency using (relevant)/(base) at a ratio of 1/(price).", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "Using the (pubkey)/(price) pairing, all that is needed to populate the orderbook skeleton is for nodes to broadcast their pubkey and price for any (base)/(rel) pair. Nodes that are running a local coin daemon therefore broadcast their lists of UTXOs, which helps to propagate the orderbook. All of this is done in the background, on-demand.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "Critical information is broadcast with fully signed encryption to prevent spoofing. Thus, all nodes can verify the smart address associated with a pubkey. In this way, nodes can validate the price broadcasted. (The electrum SPV coins have their own specific SPV-validation process for all UTXOs before they can be approved for trading on BarterDEX.)", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "While all nodes could broadcast their UTXO lists constantly to keep them updated, this would result in the network rapidly being overrun with congestion. To eliminate this issue, BarterDEX simply relies on the (pubkey)/(prices) as this is all that is necessary to maintain useful orderbooks.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "Since there are N*N possible orderbooks (given N currencies), it is not practical to have BarterDEX configured to update all possible orderbooks constantly. Instead, orderbooks are created on the user end when requested from the raw public data. During orderbook creation, if the top entries in the orderbook do not possess any listunspent data, a request is made to the network to gather this information.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "This process ensures that by the time a trade completes, there is already a request\nfor an orderbook, which in turn requests the listunspent data for the most likely pubkeys. The actual order-matchingprocess then iterates through the orderbook, scanning all the locally known UTXOs to find a high- probability counterparty to whom BarterDEX can then propose a \"request\" offer. In practice, early users on BarterDEX can currently experience nearly instantaneous responses, assuming all the parameters are properly met.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "orderbook-propagation" + }, + { + "text": "The BarterDEX API", + "tagName": "h2", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "We created an API model that is the same for all coins—with the obvious exceptions of the electrum-API call itself, and within some of the returned JSON files that have different calls, such as \"listunspent.\"", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "Furthermore, the underlying technology of BarterDEX enables the API to treat all bitcoin-protocol compatible coins with a universal-coin model. Therefore, when working with the BarterDEX API, an independent developer working to feature their coin on BarterDEX need only use the API \"coin\" symbol to receive the full set of BarterDEX features.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "There are several feature requirements in the core code of the blockchain coin, and if these features are not included in the core there may be some limitations. For example, a coin that is not built on the Bitcoin-protocol Check Lock-Time Verify (CLTV) feature can still take advantage of the liquidity-taker side of the BarterDEX API. For a coin to work in native mode, it must also have a ", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": " RPC call.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "If the coin has the CLTV OP_CODE, it can be both the liquidity provider and the liquidity taker. For coins using SPV, BarterDEX only supports the liquidity-taking side (for overall network-performance reasons). Also, we assume that any trader with ambitions of being a serious liquidity provider should also be serious enough to install the coin daemon for the coins they are trading, as this will increase their speed of processing.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "the-barter-dex-api" + }, + { + "text": "A Brief Discussion on the Future of BarterDEX", + "tagName": "h3", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-brief-discussion-on-the-future-of-barter-dex" + }, + { + "text": "This concludes a high-level summary of the BarterDEX protocol as created by the Komodo organization. It is now fully functioning and live, and with the support of our community, we have successfully completed roughly one-hundred thousand atomic swaps.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-brief-discussion-on-the-future-of-barter-dex" + }, + { + "text": "We should warn our readers, nevertheless. Every element of the Komodo ecosystem is still considered to be highly experimental. We provide no investment advice, nor any guarantees of any funds utilized on our network. Use our products only at your own risk.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-brief-discussion-on-the-future-of-barter-dex" + }, + { + "text": "Looking past our upcoming immediate dICOs, BarterDEX will continue to evolve. The current iteration has already identified several areas of improvement for the next iteration. Several different GUI systems are also under construction by various com- munity members, all of which are utilizing the BarterDEX 1.0 API. As we develop the BarterDEX API, we are making sure that future iterations are backwards compatible for developer ease-of-use. Improving the user experience and user interface of a leading GUI app is a top priority.", + "tagName": "p", + "path": "historical/whitepaper/chapter6", + "closestElementReference": "a-brief-discussion-on-the-future-of-barter-dex" + } + ], + "historical/whitepaper/chapter7": [ + { + "text": "The features described on this page are deprecated and no longer available.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": null + }, + { + "text": "Abstract (Jumblr)", + "tagName": "h1", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "abstract-jumblr" + }, + { + "text": "Jumblr is a Komodo technology that enables users to anonymize their cryptocurrencies. At its foundational level, Jumblr takes non-private funds from a transparent\n(non-private) address, moves the funds through a series of private and non-traceable\nzk-SNARK addresses—which disconnects the currency trail and anonymizes the\nfunds—and then returns the funds to a new transparent address of the user’s choosing. Through a connected Komodo technology, BarterDEX, Jumblr can provide this service not only for Komodo’s native coin, KMD, but also for any cryptocurrency connected to the Komodo ecosystem.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "abstract-jumblr" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "introduction" + }, + { + "text": "The Option of Privacy is Essential to the Komodo Ecosystem", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-option-of-privacy-is-essential-to-the-komodo-ecosystem" + }, + { + "text": "One primary goal of the Komodo ecosystem is to provide our users with the highest\nlevels of security. The option to enable oneself with privacy is an inherent part of a\nstrong security system. Privacy empowers users with the ability to make choices\nwithout being directly controlled or observed by a third-party actor.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-option-of-privacy-is-essential-to-the-komodo-ecosystem" + }, + { + "text": "Many of humanity’s most meaningful advancements in art, technology, and other\nhuman endeavors began in situations where the creator had the security of privacy\nin which to explore, to discover, to make mistakes, and to learn thereby.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-option-of-privacy-is-essential-to-the-komodo-ecosystem" + }, + { + "text": "The roots of the Komodo ecosystem stem from the seminal work of Satoshi\nNakamoto and his Bitcoin protocol 1 . One of the key challenges in this technology\nis that the original protocol does not make any account for privacy. Therefore, in advancing blockchain technology, we created Jumblr to empower Komodo-ecosystem\nmembers with this necessary security.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-option-of-privacy-is-essential-to-the-komodo-ecosystem" + }, + { + "text": "Challenges for Privacy-centric Systems and the Komodo Solution", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "Current pathways to obtain privacy in the blockchain industry have many problems.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "One of the most popular methods to obtain privacy is the use of a centralized\nmixing service. In this process, users send their cryptocurrencies to service providers,\nwho then mix all the participants’ coins together, and return the coins according to\nthe relevant contributions. With this method, the most dangerous issue, among many,\nis that for the duration of the mixing period users lose control over their currency.\nThe funds, therefore, are subject to theft and human error.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "Other decentralized coin-mixing methods, such as the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "coin shuffle", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": " , require coordinating with other human parties. This also introduces the potential for the same\nissues of theft and human error, and adds yet another risk: the coordination between\nhuman parties can result in the disclosure of a user’s privacy.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "coin shuffle", + "tagName": "a", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "Some cryptocurrencies support mixing as a part of the normal transaction process\nout of a desire to provide constant anonymization. Varying methods for randomizing\nthese transaction-mixing patterns exist among the many different brands of relevant\ncryptocurrencies. The most popular is Monero.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "challenges-for-privacy-centric-systems-and-the-komodo-solution" + }, + { + "text": "The Komodo Solution", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-komodo-solution" + }, + { + "text": "An Introduction to Jumblr", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "an-introduction-to-jumblr" + }, + { + "text": "Our Jumblr technology solves these issues through a two-layered approach, relying on connected technologies in the Komodo ecosystem—BarterDEX, our native\nKomodo coin (KMD), and the upstream Zcash parameters. The Jumblr process is\nmanaged locally on the user’s machine and requires no third parties, human coordination, or other mixing services.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "an-introduction-to-jumblr" + }, + { + "text": "A Brief Explanation of the Two Foundational Technologies", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-brief-explanation-of-the-two-foundational-technologies" + }, + { + "text": "Komodo Coin(KMD)", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "komodo-coin-kmd" + }, + { + "text": "KMD is a cryptocurrency that enables users to conduct both transparent and private transactions. In developing the Komodo ecosystem, we use KMD as the native\ncryptocurrency for many connecting technologies. KMD thereby continually gains\nusefulness as more Komodo tools are built upon it, including Jumblr.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "komodo-coin-kmd" + }, + { + "text": "KMD Began as a Fork of Zcash", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "This coin began as a fork of the popular privacy coin, ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "Zcash", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": ". As such, KMD retains the same inherent privacy features. Notable among these features are the Zcash parameters and zk-SNARK technology. These enable users to move funds on a public blockchain without leaving a data trail for later analysis.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "Zcash", + "tagName": "a", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "This is one of the most powerful forms of blockchain privacy in existence, as the\nprovided privacy is effectively permanent. The Zcash parameters and zk-SNARK\ntechnology provide the initial foundation for users to take transparent KMD funding and make it anonymous (with the assistance of Komodo’s Jumblr technology)\nwithout leaving behind a cryptocurrency trail.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "The Zcash project itself is a fork of Bitcoin. Thus, all the features designed by\nSatoshi Nakamoto in the Bitcoin protocol are also available in Komodo.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "kmd-began-as-a-fork-of-zcash" + }, + { + "text": "BarterDEX", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": "BarterDEX is an open-source protocol designed and pioneered by the Komodo\nteam. It allows people to trade cryptocurrency coins without a counterparty risk. The\nprotocol is open-source and trading is available for any coin that developers choose\nto connect to BarterDEX.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": "An in-depth discussion of BarterDEX is provided in the previous ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": "Part III", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": " section of\nthis paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": "Part III", + "tagName": "a", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "barter-dex" + }, + { + "text": "Iguana Core", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "iguana-core" + }, + { + "text": "A core Komodo technology, called Iguana Core, is fundamental to the overall functionality of the Komodo ecosystem. It is at the center of nearly all Komodo projects,\nand Jumblr is no exception. For more information on Iguana Core, please see our Komodo GitHub repository. There is also more detail provided in the BarterDEX section\nof this whitepaper.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "iguana-core" + }, + { + "text": "Komodod", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "komodod" + }, + { + "text": "Komodod is the name of the background software (also called a daemon) that\nruns behind the scenes of essentially all Komodo-related software. There is more\ninformation provided on Komodod in the dICO part of this paper.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "komodod" + }, + { + "text": "The Jumblr Process", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-jumblr-process" + }, + { + "text": "Jumblr enables users to anonymize their funds. The Jumblr process is rooted in\nour native Komodo coin (KMD), and the privacy features can extend thereby to any\nblockchain project connected to the Komodo ecosystem.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-jumblr-process" + }, + { + "text": "Anonymizing Native Komodo Coin (KMD)", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "anonymizing-native-komodo-coin-kmd" + }, + { + "text": "At its most simple level, Jumblr takes non-private KMD funds from a transparent\n(non-private) address, moves the funds through a series of private and non-traceable zk-SNARK addresses—which disconnects the currency trail and anonymizes the\nfunds—and then returns the funds to a new transparent address of the user’s choosing.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "anonymizing-native-komodo-coin-kmd" + }, + { + "text": "The entirety of the anonymization process is conducted through the user’s local\nmachine(s), with one exception—that of sending the data to the network for mining.\nTherefore, Jumblr eliminates many dangers, including the issues of theft, human error,\nthe disclosure of user privacy through human coordination, and the unraveling of\nprivacy by ever-increasing nature of computer processing power.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "anonymizing-native-komodo-coin-kmd" + }, + { + "text": "User Actions", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "The commands that initiate Jumblr exist within Komodo’s foundational program\non the user’s local machine, Komodod. This program is included in a typical Komodo\ninstallation, and, under normal circumstances, Komodod is natively connected to the\nsame KMD addresses accessed by the user.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "Therefore, users in the Komodo ecosystem have access to Jumblr’s privacy tech-\nnology without any further effort. Developers of standalone GUI applications for the\nKomodo ecosystem can integrate Jumblr commands into user interfaces in any desired manner.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "There are two main commands, or API calls, available:", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "jumblr_deposit ", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "jumblr_deposit ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "jumblr_secret ", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "jumblr_secret ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "user-actions" + }, + { + "text": "jumblr_deposit ", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "This command initiates the anonymization of KMD.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Before executing the command, the user prepares the funds by placing them within\nthe chosen ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ". So long as Komodod has access to the private keys of the\n", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ", nothingfurther is required. The user simply executes the command\n\"jumblr_deposit ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "\" and Jumblr begins watching for and processing any\nfunds in the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "We call a transparent address a \"T address.\" These are fully accessible to the user, and they are the means of conducting normal transactions. All currency entering and leaving a T address is fully visible to the network.", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "On the other hand, we call a privacy-enabled address a \"Z address,\" as they utilize the Zcash parameters and zk-SNARK technology. Z addresses are internal to the Jumblr process and a user typically does not directly interact with them.", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "The first step Jumblr takes is to move the user’s funds from a T address to a Z\naddress.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "The First Step of the Jumblr Anonymization Process", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Moving the funds from a transparent address to a privacy-enabled address.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "T -> Z", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Naturally, as the T address is fully public, an outside observer can see the funds\nas they leave for the respective Z address. Therefore, to fully disconnect the currency\ntrail, Jumblr then moves the funds from the initial Z address to yet another Z address.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Jumblr creates a new Z address for each individual lot.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "The Second Step of the Jumblr Anonymization Process", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Moving the funds from one unique and untraceable Z address to another", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Z -> Z", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Through the technology of the Zcash parameters, zk-SNARKs, and Jumblr, the\nspecific whereabouts of the funds are known only to the user. The user does not\nneed to follow the movements of T → Z and Z → Z. However, for the advanced user,\nthere are Jumblr commands available that allow for more active interaction at these\nstages (see the Komodo wiki for further details). One command to mention here is\n", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "z_gettotalbalance", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ". This reveals to the user the total balance they hold within all their\nZ addresses.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Upon executing the command [jumblr_deposit ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "], Jumblr begins\ncontinually observing the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ". Should the user send more funds into\ntheir ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": " while Jumblr is already processing the previous amount, Jum-\nblr will simply take these new funds into account, perform any necessary actions to\nproperly adopt them into the process, and continue its course.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Jumblr includes two subcommands that allow the user to pause Jumblr manually:\n", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": ". The user can also halt Jumblr by shutting\ndown Komodod (and any relevant standalone GUI applications).", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "Once the funds have reached their final Z address(es), they lay dormant, awaiting\nthe user’s next command.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "km-daddress" + }, + { + "text": "jumblr_secret ", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "The user executes this command to complete the Jumblr process. Jumblr will extract\nall the user’s hidden currency from each Z address and place the funds in a new T\naddress, which we call the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": ". This makes the funds spendable\nagain.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "The Third and Final Step of the Jumblr Anonymization Process", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "Moving the funds from one unique and untraceable Z address to another", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "Z -> T", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "We recommend that you keep these private addresses primarily for storage. You\nshould never share with anyone any information regarding your ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "’s. Treat all relevant information like a password.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "When you are prepared to spend from your private funds, we recommend that\nyou repeat the Jumblr process again on the amount that you desire to spend. This\nwill keep the bulk of your stored funds within a privacy \"air gap,\" as it were. For\nmaximum privacy, we also suggest that after emptying the public node of all funds,\nthe user delete and destroy the wallet.dat file in which the initial privacy- creation\nprocess took place. This destroys the last remnants of the cryptocurrency trail.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "secret-km-daddress" + }, + { + "text": "Additional Security Layers", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "additional-security-layers" + }, + { + "text": "Jumblr’s Process of Breaking Down Funds", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": "The method by which Jumblr breaks down and processes the funds provides yet\nanother layer of privacy. Jumblr begins by taking the total amount in the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": " and, if necessary, splitting it until the largest quantities are all equal to ~7770\nKMD. It then breaks down the remainder into quantities of ~100 KMD, and then the\nremainder thereafter into quantities of ~10 KMD. Any final remainder (which would\nbe anything less than ~10 KMD) is ignored.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": "Jumblr also automatically extracts its 0.3% overall fee during the Jumblr process.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": "Therefore, the total amount is broken down into lot sizes of ~7770 KMD, ~100\nKMD, and ~10 KMD.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-breaking-down-funds" + }, + { + "text": "Jumblr’s Process of Moving the Individual Lots into a Private Address", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-moving-the-individual-lots-into-a-private-address" + }, + { + "text": "Jumblr does not immediately move each lot into a Z address. Instead, it performs\nits actions in a randomized pattern to optimize anonymity, using the collective of\nall Jumblr users in the Komodo ecosystem to blend the transactions of the crowd\ntogether.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-moving-the-individual-lots-into-a-private-address" + }, + { + "text": "First, all Jumblr actions throughout the ecosystem are programmed to cluster\naround block numbers that are multiples of ten (i.e. blockchain height = XXXXX0).\nThis gathers all Jumblr requests from all users for the given time into one large\ngroup, clustered together every ten minutes (a single block generates every minute,\nand therefore the tenth block occurs every tenth minute).", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-moving-the-individual-lots-into-a-private-address" + }, + { + "text": "At the moment of activity, Jumblr does one of two things: it either performs the\nnext action in the process of anonymization, or it chooses to do nothing.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-s-process-of-moving-the-individual-lots-into-a-private-address" + }, + { + "text": "Option 1: Jumblr performs the next action", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "When Jumblr looks at the next action, it can perform one of three possible steps:", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "T → Z If the lot has yet to be moved out of the ", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": ", Jumblr can move it from the first T address to the first Z address.", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "Z → Z Assuming the lot is now in the first Z address, Jumblr can move it to the final Z address.", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "Z → T Assuming the ", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": " API call is activated, Jumblr can move the lot from the final Z address to the final T address: ", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": ".", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-1-jumblr-performs-the-next-action" + }, + { + "text": "Option 2: Does nothing", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-2-does-nothing" + }, + { + "text": "At each turn, instead of performing any of the above steps, Jumblr can simply abstain from any action. This happens approximately half of the time.", + "tagName": "li", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-2-does-nothing" + }, + { + "text": "Through these actions, Jumblr adds a layer of obfuscation on top of the Zcash parameters and zk-SNARK technology by adding privacy to the timing and movements of each step for each user.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "option-2-does-nothing" + }, + { + "text": "Additional Privacy Considerations", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "additional-privacy-considerations" + }, + { + "text": "Although the KMD anonymization process provides a measure of privacy and may\nappear to be sufficient, there are still more precautions a user must take. Two main attacks are available to a would- be sleuth.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "additional-privacy-considerations" + }, + { + "text": "The Timing Attack", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "In this attack, the sleuth simply studies the time the funds disappear from the\n", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": " and looks for funds to appear in a T address soon thereafter. If the\nprivacy-user persistently chooses predictable timing for initiating and completing the\nJumblr commands, a determined sleuth might deduce a user’s ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "The aforementioned process of grouping and randomizing the timing of movements provides one layer of security against The Timing Attack. Users thus blend the\ntiming of their movements together, using the power of the collective to obscure their\ntransactions from the sleuth.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "However, The Timing Attack remains an issue if the user is the only person employing Jumblr for the duration of the anonymization of their funds. In this event,\neffectively no anonymization takes place. The sleuth can clearly see the funds leave\nfrom the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": " and return to the", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": " later. Therefore, to\nbe effective, Jumblr requires more than one user and gains strength with higher levels\nof adoption. Given the growing size of the Komodo community, we anticipate that\nusers will easily be able to overcome the Timing Attack.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-timing-attack" + }, + { + "text": "The Knapsack Attack", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "The Knapsack Attack is somewhat like the Timing Attack, but as applied to\namounts. For example, if there is only one KMD address that entered ~1000000 KMD\ninto Jumblr, and ~1000000 KMD later emerges elsewhere, the sleuth can easily discern\nthe user’s ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": ".", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "The process of breaking down the total amount into three equal sized lots (~7770,\n~100, ~10 KMD) for all users provides one layer of security against the Knapsack\nAttack. Users again can blend their transactions together, using the power of the\ncollective to obfuscate their movements.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "Jumblr has another feature, Multiple Secret Addresses, that also protects against\nthis attack. This feature is explained in the following section.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "Further Security Enhancements to Combat the Timing and Knapsack Attacks", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-security-enhancements-to-combat-the-timing-and-knapsack-attacks" + }, + { + "text": "More Defense Against the Knapsack Attack: Multiple Secret Addresses", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "As another layer of security, users can create multiple secret KMD addresses (", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "’s) and actively use them in the Jumblr process.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "When using multiple ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "’s, whenever Jumblr reaches the stage\nof Z → T for any given lot of KMD, Jumblr will randomly choose one of the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "’s for this lot’s final T address. This enables the user to split their initial\nfunding into many different ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "’s, thus providing another layer of\nsecurity against the Knapsack Attack.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "Jumblr manages up to 777 ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "’s at one time.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "more-defense-against-the-knapsack-attack-multiple-secret-addresses" + }, + { + "text": "Further Enhancements Against the Timing Attack", + "tagName": "h4", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "The simplest and strongest defense against the Timing Attack is in the hands of\nthe users. Recall that a user chooses the times they execute the commands ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": " and ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": ". The longer a user maintains their currency within\nthe shielded Z address(es), the more security they have against the Timing Attack.\nThis is because the Jumblr actions of other users during the interim obfuscate the\ntrail. We therefore encourage users who are mindful for protection against this attack\nto delay the period of execution between the two commands.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "We also developed Jumblr to have additional inherent protections against the Timing Attack for cases where users desire a more immediate transfer. Assuming Jumblr\nis activated on the user’s local computer, as soon as Jumblr detects a new deposit\nin the ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": ", it can begin the anonymization process. However, Jumblr deliberately delays its own progress to provide a layer of security against The Timing\nAttack.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "Recall that all user actions are clustered around block numbers that are multiples\nof ten, and half the time, Jumblr decides to do nothing. Therefore, in statistical terms, although the Jumblr background process may be constantly running in Komodod,\nJumblr only activates to check for pending tasks every tenth minute, and only performs tasks every twentieth minute. Thus, each hour has roughly three different moments when Jumblr will perform one of the three available actions: T → Z, Z → Z, and\nZ → T. This program randomizes the amount of time it takes to complete the Jumblr\nprocess.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "Assuming during a given period of activity Jumblr decides to perform the action\nof T → Z, it begins by working through the different sizes of lots from largest to\nsmallest—thus beginning with a 7770-KMD lot until they are all allocated, then to\nthe 100-KMD lots, and finally to the 10-KMD lots. During any individual period of\nactivity, Jumblr will perform the T → Z movement for no more than a single lot, and\nthen stop.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "However, when Jumblr performs either of the other two actions (Z → Z and Z → T)\nit will make the transfers for all lots that are in play.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "Through these additional securities, therefore, Jumblr defeats the Timing Attack\nand the Knapsack Attack, relying on the power of the Zcash parameters and zk-\nSNARK technology. The more participants in Jumblr, the more privacy users gain.\nFor those who use Jumblr on a consistent basis, the 0.3% cost of utilizing Jumblr is\noffset by the 5.1% rewards that can be earned with the Komodo coin (KMD). Thus,\nfor a small fee, Jumblr users can provide both themselves and their community with\nprivacy.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "further-enhancements-against-the-timing-attack" + }, + { + "text": "Offering Privacy to Other Cryptocurrencies", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "offering-privacy-to-other-cryptocurrencies" + }, + { + "text": "Jumblr can provide privacy to any cryptocurrency that is connected to the Komodo\necosystem, as BarterDEX is natively integrated. Currently, the user is required to\nperform the first and final steps of trading in the Jumblr process of non-KMD cryptocurrencies. In the long term, however, Jumblr is capable of fully automating the\nprocess. We await larger adoption to complete the non-KMD automation features.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "offering-privacy-to-other-cryptocurrencies" + }, + { + "text": "The Current Jumblr Process: Manual non-KMD to KMD Trading on BarterDEX", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-current-jumblr-process-manual-non-kmd-to-kmd-trading-on-barter-dex" + }, + { + "text": "Overall, to provide privacy to a non-KMD cryptocurrency in the Komodo ecosystem, that currency must first be traded on BarterDEX into KMD. Once the underlying\nvalue is held as KMD in a ", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-current-jumblr-process-manual-non-kmd-to-kmd-trading-on-barter-dex" + }, + { + "text": "", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-current-jumblr-process-manual-non-kmd-to-kmd-trading-on-barter-dex" + }, + { + "text": ", Jumblr can complete its work. Upon completion, the anonymized KMD is then exchanged on BarterDEX again for the relevant\nnon-KMD cryptocurrency and returned to a secret address of the user’s choosing.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-current-jumblr-process-manual-non-kmd-to-kmd-trading-on-barter-dex" + }, + { + "text": "At present, while BarterDEX is in its early stages, we are focusing our energies on increasing overall BarterDEX usability.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "the-current-jumblr-process-manual-non-kmd-to-kmd-trading-on-barter-dex" + }, + { + "text": "Future Capabilities: Jumblr Automates the BarterDEX Trading Process for the User", + "tagName": "h3", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "future-capabilities-jumblr-automates-the-barter-dex-trading-process-for-the-user" + }, + { + "text": "In the future, Jumblr will simply be a client of the BarterDEX service when providing privacy to non-KMD cryptocurrencies.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "future-capabilities-jumblr-automates-the-barter-dex-trading-process-for-the-user" + }, + { + "text": "When a user activates Jumblr for a non-KMD coin, Jumblr will instruct BarterDEX\nto trade the non-KMD coin into transparent KMD according to the current prices.\nThe underlying value now being in KMD, the Jumblr protocol performs the entirety\nof the process previously described. With the underlying value made private, Jumblr\nwill direct BarterDEX to exchange the value back to the user’s chosen cryptocurrency.\nFinally, Jumblr will return the final sum to a new cryptocurrency address, provided\nby the user at the outset of the process.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "future-capabilities-jumblr-automates-the-barter-dex-trading-process-for-the-user" + }, + { + "text": "Due to market fluctuations, depending on liquidity, it is possible that a user will\nexperience slippage in the underlying value of their non-KMD cryptocurrency. While\nit would be possible to prearrange the trade on BarterDEX (thereby eliminating any\nslippage), there is no available method to make such an arrangement without leaking\nprivacy information. The party performing the second half of the trade onBarterDEX\nwould be a central point of failure. Therefore, the most private method for non-KMD privacy creation is to simply rely on the active BarterDEX liquidity providers.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "future-capabilities-jumblr-automates-the-barter-dex-trading-process-for-the-user" + }, + { + "text": "A Word on Risks Inherent in Jumblr and the Komodo Ecosystem", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "The Komodo coin (KMD), and therefore Jumblr by association, both rely on the\nZcash parameters as put forth by the Zcash team. The Zcash parameters are a \"zero-knowledge\" form of technology. This is a powerful form of privacy, and arguably\nsuperior to other forms as it is effectively permanent. Relying on the Zcash parameters allows us to turn our creative resources to other blockchain-technology challenges, while still empowering members of the Komodo ecosystem with the option\nof privacy.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "To create the Zcash parameters, the original Zcash developers had to create a series\nof keys that, when combined, created a master key that could unlock and lock the\nparameters. After using the master key to create the parameters, the team destroyed\nevery individual key. The team conducted this endeavor in a public manner. We encourage interested readers to view the \"Zcash Ceremony\" explanation, and to search\nfor other viewpoints as well.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "To briefly summarize the security measures, the Zcash team used several layers of\nprotection including: multi-party computation, air-gapped compute nodes, hard-copy\nevidence trails, a uniquely crafted distribution of the Linux operating system, and\nthe physical destruction of each piece of hardware that held an individual key. The\nresulting layers of defense would be of the highest level of difficulty for an outsider to penetrate. Furthermore, the method of creation and destruction ensured that the\ninternal security of the project was faultless, so long as at least one member of the\nentire Zcash team was honest.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "By our observation, the team performed this endeavor with sufficient competence\nand due diligence. Furthermore, given the nature of the project, the longstanding\nreputation of the Zcash developers, and the modus operandi of their lives’ work, we\nbelieve they were properly motivated to perform the creation and destruction in a\ncapable and honest manner.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "Nevertheless, there are privacy advocates in the cryptocurrency industry who maintain a degree of suspicion over any project that requires an element of human trust.\nThis suspicion extends to the Zcash parameters. These observers continually scrutinize the Zcash project, searching for more and more processes by which the creation\nceremony could have failed. Yet, while various theories have been put forth, no actual\nfailure in the Zcash parameters has been discovered.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "In adopting the Zcash parameters, we receive frequent questions regarding how\nthey affect the Komodo coin. The answer is that the privacy in the Komodo ecosystem\nis permanent, regardless of any potential fault by the Zcash team. Furthermore, we\ncan adopt any updates the Zcash team releases to the parameters.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "In the unlikely event that someone was able to retain a complete copy of the master\nkey, the only power the holder would have, would be the ability to create new private\nmoney in our system. This holder could then trade that for transparent, spendable\nmoney. This could negatively impact the Komodo coin, and we would be required\nto adapt our platform. If a fault in the Zcash parameters were to be discovered, the\nKomodo team has various contingency methods at our disposal to remove the Zcash\nparameters and replace them with a new set of parameters.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "Though in Komodo we do not see this as a realistic threat, we nevertheless include\nthe information here in our white paper to provide complete transparency for any\nuser who seeks to invest their resources in the Komodo project.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "a-word-on-risks-inherent-in-jumblr-and-the-komodo-ecosystem" + }, + { + "text": "Jumblr Provides the Komodo Ecosystem With Privacy", + "tagName": "h2", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-provides-the-komodo-ecosystem-with-privacy" + }, + { + "text": "For the Komodo ecosystem to reach its full potential, the option of enhanced privacy\nmust be available to Komodo users. Jumblr fills this demand.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-provides-the-komodo-ecosystem-with-privacy" + }, + { + "text": "Jumblr relies on BarterDEX, KMD, and Iguana Core to connect to the Komodo\necosystem. The foundational privacy it offers is built upon the KMD coin, the Zcash\nparameters, and zk-SNARK technology. Additional enhancements are built into the\nJumblr process to maximize user privacy, including protections against the Timing\nAttack and the Knapsack Attack. Through BarterDEX and Iguana Core, these privacy\nfeatures extend to any cryptocurrency connected to the Komodo ecosystem.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-provides-the-komodo-ecosystem-with-privacy" + }, + { + "text": "As more users become a part of the Komodo ecosystem, they can work together to\nenhance both their own privacy and the privacy of fellow ecosystem members. As the\necosystem continues to grow, there are various levels of growth the Komodo team can\noffer to Jumblr, including automating the non-KMD Jumblr process. We look forward\nto receiving your feedback on this privacy-enhancing technology.", + "tagName": "p", + "path": "historical/whitepaper/chapter7", + "closestElementReference": "jumblr-provides-the-komodo-ecosystem-with-privacy" + } + ], + "historical/whitepaper/chapter8": [ + { + "text": "Final Notes Regarding the Komodo Project", + "tagName": "h1", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "final-notes-regarding-the-komodo-project" + }, + { + "text": "There are few final miscellaneous topics to discuss. These include our strategy for\nfiat-pegged cryptocurrencies (PAX), our outlook for smart-contract technology, and\nthe nature of the main chain in the Komodo ecosystem, KMD.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "final-notes-regarding-the-komodo-project" + }, + { + "text": "Fiat-Pegged Cryptocurrencies", + "tagName": "h2", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "fiat-pegged-cryptocurrencies" + }, + { + "text": "Our strategy towards fiat-pegged cryptocurrencies (PAX) has recently changed. Previously, we featured on our website a white paper that outlined a PAX strategy. That\nformer strategy was created before it was clear whether governments of the world\nwould embrace blockchain technology.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "fiat-pegged-cryptocurrencies" + }, + { + "text": "Today, it seems that governments are updating their philosophies and preparing\nfor blockchain adoption. Governments appear to be considering a need to create\nblockchain-based cryptocurrencies that can be exchanged for their existing fiat currencies.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "fiat-pegged-cryptocurrencies" + }, + { + "text": "In many cases, we may be able to directly integrate these government-sponsored\nfiat-to-blockchain cryptocurrencies natively in BarterDEX. Blockchain projects that\nproperly utilize the core security features of the Bitcoin protocol are capable of properly performing atomic swaps.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "fiat-pegged-cryptocurrencies" + }, + { + "text": "As it is possible that government-sponsored cryptocurrencies may natively inte-\ngrate with BarterDEX, it appears that creating our own PAX technology may be un-\nnecessary. We are putting all PAX endeavors on hold at this time.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "fiat-pegged-cryptocurrencies" + }, + { + "text": "Smart Contracts on the Komodo Platform", + "tagName": "h2", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "There are several smart-contract options available in the Komodo ecosystem. The\noptions based on the Bitcoin protocol have been included with our technology, and indeed even with Bitcoin, since the beginning. We also recently released Crypto Conditions, Merkle Root of Merkle Root (MoM) notarizations, and Smart chain Customizations. These provide enhanced smart-contract and smart-chain functionality. All are\nstill in beta stages.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "smart-contracts-on-the-komodo-platform" + }, + { + "text": "Bitcoin-protocol Based Smart Contracts", + "tagName": "h3", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "bitcoin-protocol-based-smart-contracts" + }, + { + "text": "A rarely known fact in the blockchain industry is that Satoshi Nakamoto included\nsecure and advanced smart-contract technology in the original release of the Bitcoin\nprotocol. Smart chains in the Komodo ecosystem can use the smart-contract capabilities native to the Bitcoin protocol, as Komodo is ultimately a fork of Bitcoin.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "bitcoin-protocol-based-smart-contracts" + }, + { + "text": "Various vendors and developers in the open-source community provide resources\nto make this easier, though we make no specific endorsements of any product. One\nexample of smart-contract technology native to the Bitcoin protocol is a Conditional\nTime-Locked Deposit, which our BarterDEX technology utilizes in the trading process.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "bitcoin-protocol-based-smart-contracts" + }, + { + "text": "Crypto Conditions, Merkle Root of Merkle Root (MoM), and Customized Smart Chains", + "tagName": "h3", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "We are also in the process of releasing our own smart-contract technology that\ngreatly enhances the Komodo developer’s experience. Our smart-contract technology\nis geared to be language-agnostic, meaning that any language (JavaScript, Ruby, C#,\nPython, etc.) can execute smart contracts in theKomodo ecosystem. Furthermore, the\nMoM technology allows for multi-chain and cross-chain smart- contract interoperability. These many features empower both smart chains as well as the main chain.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "As each technology is still in the beta stages, we refrain from including detailed\ndocumentation in our white paper. Please visit our communities to find documentation resources and to converse with our developers, if you are interested in building\non Komodo. We intend to create thorough educational experiences for these products\nin due time.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "Details Regarding the Primary Chain of the Komodo Ecosystem: Kmd", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "| Circulating Coin Supply: | ~100000000 |\n| ----------------------------- | ----------- |\n| Total Coin Supply (yr. 2030): | ~200000000 |", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "The foundational coin of the Komodo ecosystem is named after the ecosystem itself, Komodo (KMD).", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "It is the most versatile coin we are building. Whenever we create new technologies\nfor our ecosystem, we seek to establish a relationship between the functionality of the technology and the usefulness of KMD. For instance, KMD is the native cryptocurrency for Jumblr. All other cryptocurrencies in the Komodo ecosystem that seek\nto utilize Jumblr’s privacy must first be traded on BarterDEX for KMD. After the\nprivacy process is complete, the users then exchange KMD on BarterDEX for their\ndesired cryptocurrency. KMD is also the fuel for our smart-contract technology, and\nMoM smart contracts store their data in the KMD main chain. These are but a few\nexamples of Komodo’s usefulness. Readers may discover many more by discussing\nKMD with members of our community.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "crypto-conditions-merkle-root-of-merkle-root-mo-m-and-customized-smart-chains" + }, + { + "text": "Rewards", + "tagName": "h3", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "Furthermore, those who hold KMD may earn rewards of up to 5.1% annually. Any\nwallet address that holds at least 10 KMD is eligible. KMD holders must simply move\ntheir KMD once a month—even if the funds are sent back to the same address from\nwhich they originated—in order to earn their reward. This reward is built into the\ncore code of Komodo.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "The reward comes from an opportunity provided by our unique security system,\ndPoW. The nature of the reward is rooted in the financial incentive that is typically\ngiven to miners on a normal PoW chain. On a normal PoW, when a miner mines\na new block, the blockchain mints new coins and delivers them to the miner’s indicated wallet. For instance, on the Bitcoin blockchain, the reward for mining a new\nblock is currently ~12.5 BTC. In dPoW, we do not need to allocate such a high incentive to miners, as we already maintain access to the hash rate of our chosen PoW\nnetwork, Bitcoin. Therefore, when we created the KMD main chain, we recoded this\ncoin-minting reward to distribute 5.1% annual rewards to all holders of at least 10\nKMD.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "To earn rewards in the full amount of 5.1%, users must move their funds on the\nblockchain at least once per month. The reward is calculated as a part of the UTXO\ntransfer process of this paper for details on UTXOs). The KMD code only\ncalculates rewards for UTXOs up to one month, and then stops. By simply sending\nthe full balance of a wallet to the same receiving address, a user can generate a\nnew UTXO. In this manner, the user can claim their current rewards, and continue\nreceiving them for at least one month.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "The KMD 5.1% reward will continue for a period of approximately twelve to fourteen years. When Komodo’s overall coin supply reaches ~200M, this reward will also\ndiscontinue. Specifically, the reward will cease when the KMD chain reaches a block\nheight of 7777777.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "It is important to note that no one is forced into using KMD in our ecosystem. We\nare often asked why we chose this route, as the free nature of the Komodo ecosystem\ncan be in direct contrast to the philosophies of many other ecosystems and exchanges.\nOther ecosystems often require users use the developer’s coin.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "The reason why we follow a more open practice is that we strive to adhere to the\nguiding principles of decentralization and open-source technology. We want to create\na blockchain platform where people are free to use whatever is most useful for them\nin their entrepreneurial endeavors. Keeping KMD as an optional element empowers\nthe members of the Komodo ecosystem with freedom.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "rewards" + }, + { + "text": "Conclusion", + "tagName": "h2", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "conclusion" + }, + { + "text": "This concludes a thorough explanation of the foundational technologies of the Komodo ecosystem. We are working diligently to improve the user experience. While\nsome may say that the cryptocurrency industry is but a bubble, at Komodo we believe we have not yet begun the fight. We hope that the innovations we provide will be a meaningful contribution to the remarkable advent of blockchain, decentralization,\nand open-source technologies.", + "tagName": "p", + "path": "historical/whitepaper/chapter8", + "closestElementReference": "conclusion" + } + ], + "historical/whitepaper": [ + { + "text": "Komodo (Advanced Blockchain Technology, Focused On Freedom)", + "tagName": "h1", + "path": "historical/whitepaper", + "closestElementReference": "komodo-advanced-blockchain-technology-focused-on-freedom" + }, + { + "text": "Intoduction to Komodo", + "tagName": "h2", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "The Komodo project focuses on empowering users with Freedom through\nblockchain technology. There are many forms of Freedom that Komodo can provide,\nand we are currently focusing on empowering two types of users: the blockchain\nentrepreneur, and the average cryptocurrency investor. Together, our community of\nentrepreneurs, investors, and other users form an economic ecosystem.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "The foundational pillar of the Komodo ecosystem is security. Komodo provides\na unique and innovative form of security that is as strong as the Bitcoin network,\nyet does not require the incredible cost. Every member of the Komodo ecosystem\nreceives the benefits of this security. The investor relies on it for everyday use. The entrepreneur relies on it to protect their blockchain innovation at a cost that is affordable\neven to small businesses and startups.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "Another of Komodo’s powerful technologies is a new method of trading cryptocurrencies directly from one person to another. It is a new kind of \"decentralized exchange.\" Our decentralized exchange removes all forms of middlemen, vouchers, and\nescrow services. It relies on an underlying concept called the \"atomic swap\", and we\nare the leaders in this technology.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "Our atomic-swap powered decentralized exchange serves both the investor and the\nblockchain entrepreneur.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "For the investor, they can trade cryptocurrencies without having to pass through a\ncentralized exchange, which can be an arduous and even dangerous process. They\nalso do not have to use an escrow service, voucher, nor even an intermediary\ncoin—not even Bitcoin. Furthermore, there is no registration process required, nor\nare there any withdrawal limits. We currently support approximately 95% of the\ncryptocurrencies in existence, including Bitcoin-protocol based coins, Ethereum, and\nEthereum-based ERC20 tokens.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "For the entrepreneur, our decentralized exchange enables the release of new products to the world without middleman involvement. Furthermore, even entrepreneurs\nwho have previously built other blockchain projects outside our ecosystem can easily\nfeature their coin on our decentralized exchange. The only requirement is that the\nblockchain product have the proper security elements in the core of the blockchain’s\ncode.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "Komodo also has powerful privacy features built into our platform. This allows the\ninvestor to trade and purchase goods and services within their right to privacy. It also\nallows the entrepreneur to release their product, and to crowdsource funds, from an\naudience that may prefer to maintain this privacy.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "There are many other technologies and features in the Komodo ecosystem, and we\nare experiencing a rapid growth of both entrepreneurs and investors.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "This Komodo white paper provides an in-depth discussion about Komodo’s unique\nsecurity features, our decentralized exchange, the method of releasing new products\non it, and our native privacy features.", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "We welcome feedback from our readers. If you have any questions or concerns over\nthe course of reading this material, please reach out to our team directly. You may\nfind our contact information on our accompanying website: ", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "https://komodoplatform.com/en/", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "https://komodoplatform.com/en/", + "tagName": "a", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + }, + { + "text": "This section contains the following docs:", + "tagName": "p", + "path": "historical/whitepaper", + "closestElementReference": "intoduction-to-komodo" + } + ], + "historical/whitepaper/references": [ + { + "text": "Acknowledgements and References", + "tagName": "h1", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "BarterDEX – A Practical Native DEX ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://github.com/SuperNETorg/komodo/wiki/barterDEX-Whitepaper-v2", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://github.com/SuperNETorg/komodo/wiki/barterDEX-Whitepaper-v2", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Nakamoto Satoshi (2008): Bitcoin: A peer-to-peer electronic cash system. ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitcoin.org/en/", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitcoin.org/en/", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Mtchl (2014): The math of Nxt forging ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.docdroid.net/ahms/forging0-4-1-pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.docdroid.net/ahms/forging0-4-1-pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "King Sunny, Nadal Scott (2012): PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.peercoin.net/read/papers/peercoin-paper.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.peercoin.net/read/papers/peercoin-paper.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Delegated Proof-of-Stake Consensus ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://komodoplatform.com/en/academy/delegated-proof-of-stake/", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://komodoplatform.com/en/academy/delegated-proof-of-stake/", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Miers Ian, Garman Christina, Green Matthew, Rubin Aviel: Zerocoin: Anonymous Distributed E-Cash from Bitcoin ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Ben-Sasson Eli, Chiesa Alessandro, Garman Christina, Green Matthew, Miers Ian, Troer Eran, Virza Madars (2014): Zerocash: Decentralized Anonymous Payments from Bitcoin ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Ben-Sasson Eli, Chiesa Alessandro, Green Matthew, Tromer Eran, Virza Madars (2015): Secure Sampling of Public Parameters for Succinct Zero Knowledge Proofs ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.ieee-security.org/TC/SP2015/papers-archived/6949a287.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.ieee-security.org/TC/SP2015/papers-archived/6949a287.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "NXT Community: NXT White paper (Previously available at ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://wiki.nxtcrypto.org/wiki/Whitepaper:Nxt", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": ")", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Larimer Daniel, Scott Ned, Zavgorodnev Valentine, Johnson Benjamin, Calfee James, Vandeberg", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Michael (March 2016): Steem, An incentivized, blockchain-based social media platform.( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://steem.com/SteemWhitePaper.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://steem.com/SteemWhitePaper.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "BitFury Group (Sep 13, 2015): Proof of Stake versus Proof of Work White Paper ( ", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf", + "tagName": "a", + "path": "historical/whitepaper/references", + "closestElementReference": "acknowledgements-and-references" + } + ], + "": [ + { + "text": "Komodo Developer Documentation", + "tagName": "h1", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": "Launching a decentralized exchange, crypto wallet, or other DeFi products can be complex, expensive, and time-consuming. Thus we created the ", + "tagName": "p", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": "Komodo SDK", + "tagName": "p", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": " - an easy solution for building innovative blockchain applications.", + "tagName": "p", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": "Komodo SDK", + "tagName": "a", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": "We offer the widest cross-chain, cross-protocol atomic-swap support in blockchain, compatible with 99% of cryptocurrencies.", + "tagName": "p", + "path": "", + "closestElementReference": "komodo-developer-documentation" + }, + { + "text": "Build A Non-Custodial Wallet", + "tagName": "h2", + "path": "", + "closestElementReference": "build-a-non-custodial-wallet" + }, + { + "text": "A secure place to store thousands of cryptocurrencies", + "tagName": "li", + "path": "", + "closestElementReference": "build-a-non-custodial-wallet" + }, + { + "text": "Have control of your private keys, own your own coins", + "tagName": "li", + "path": "", + "closestElementReference": "build-a-non-custodial-wallet" + }, + { + "text": "Supported on Web, Mobile, and Desktop", + "tagName": "li", + "path": "", + "closestElementReference": "build-a-non-custodial-wallet" + }, + { + "text": "Launch A Cross-Protocol Decentralized Exchange", + "tagName": "h2", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "The widest cross-protocol support in the blockchain sector", + "tagName": "li", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "An orderbook powered by P2P technology", + "tagName": "li", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "No restrictions on trading pairs, trade any coin/token/asset for another coin/token/asset", + "tagName": "li", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Learn how to build and launch a non-custodial wallet cum cross-protocol dex from our open-source ", + "tagName": "p", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Desktop", + "tagName": "p", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": " and ", + "tagName": "p", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Mobile", + "tagName": "p", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": " applications.", + "tagName": "p", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Desktop", + "tagName": "a", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Mobile", + "tagName": "a", + "path": "", + "closestElementReference": "launch-a-cross-protocol-decentralized-exchange" + }, + { + "text": "Develop An Enterprise-Ready DeFi Platform", + "tagName": "h2", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "A custom IDO Portal or marketplace solution", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Combine with other Komodo products for additional functionality", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Get started", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Get started", + "tagName": "a", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "In addition to the above, Komodo's blockchain technology enables developers to create fully independent blockchains in a secure and highly composable environment.", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Each independent blockchain built using Komodo has a wide range of capabilities, including:", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Litecoin-hash rate supported security", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Litecoin-hash rate supported security", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Enterprise-level scalability", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Enterprise-level scalability", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Consensus customization", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Consensus customization", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Blockchain clustering", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Blockchain clustering", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "...and more!", + "tagName": "li", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "...and more!", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Because a Komodo-based blockchain is independently managed, the developer has complete freedom, so long as the essential connections to the Komodo ecosystem remain.", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "About Komodo Platform", + "tagName": "p", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "About Komodo Platform", + "tagName": "a", + "path": "", + "closestElementReference": "develop-an-enterprise-ready-de-fi-platform" + }, + { + "text": "Create Smart Chains", + "tagName": "h2", + "path": "", + "closestElementReference": "create-smart-chains" + }, + { + "text": "Use Komodo's Technology to create your own independent blockchains. Customizations available include: Coin emission, PoW/PoS, Privacy, Antara modules and many more...", + "tagName": "p", + "path": "", + "closestElementReference": "create-smart-chains" + }, + { + "text": "Start creating", + "tagName": "p", + "path": "", + "closestElementReference": "create-smart-chains" + }, + { + "text": "Start creating", + "tagName": "a", + "path": "", + "closestElementReference": "create-smart-chains" + }, + { + "text": "Explore Antara Modules", + "tagName": "h2", + "path": "", + "closestElementReference": "explore-antara-modules" + }, + { + "text": "The various modules created by Komodo are like plugins that can be enabled at the time of creating an smartchain. The features they add include: Tokens, Oracles, Provable RNG for use in dApps, Micro Payments, Crypto Inheritance, MuSig, Gateways, Quantum Resistant Dilithium signing ......", + "tagName": "p", + "path": "", + "closestElementReference": "explore-antara-modules" + }, + { + "text": "Explore Antara", + "tagName": "p", + "path": "", + "closestElementReference": "explore-antara-modules" + }, + { + "text": "Explore Antara", + "tagName": "a", + "path": "", + "closestElementReference": "explore-antara-modules" + }, + { + "text": "Browse Komodo API", + "tagName": "h2", + "path": "", + "closestElementReference": "browse-komodo-api" + }, + { + "text": "Komodo's API consists of almost all the commands available in Bitcoin version 0.14 and many other useful RPC that are specific to the Komodo ecosystem.", + "tagName": "p", + "path": "", + "closestElementReference": "browse-komodo-api" + }, + { + "text": "Browse Komodo API", + "tagName": "p", + "path": "", + "closestElementReference": "browse-komodo-api" + }, + { + "text": "Browse Komodo API", + "tagName": "a", + "path": "", + "closestElementReference": "browse-komodo-api" + } + ], + "komodo/active-user-reward": [ + { + "text": "Komodo Active User Reward - All You Need to Know", + "tagName": "h1", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "In March 2023, the Komodo community ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "voted to reduce the KMD active user reward (AUR)", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": " from 5.1% to 0.01%. The reduction coincides with the scheduled Komodo network upgrade (dPoW Season 7's beginning in mid-2023).", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "voted to reduce the KMD active user reward (AUR)", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "What is the 0.01% Active User Reward?", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "Any Komodo address holding an unspent transaction output (UTXO) of value greater than 10 KMD will begin earning a reward 1 hour after a transaction that creates the UTXO is mined if the lock time is set. To encourage active users, the rewards will stop accruing 1 month after a transaction. So ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "claiming your reward at least once a month is recommended", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": ". If the reward is claimed at least once a month, the total reward adds up to 0.01% in a year.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "This reward does not apply to funds held on most exchanges where you do not own the private key!", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": " This means that if you want to claim your 0.01% reward, you should transfer your KMD from an exchange wallet to your personal wallet.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "Please don't confuse this mechanism with Proof of Stake (PoS). ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "You don't have to be online or run a full node", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": " (native mode) to receive the reward. Komodo's UTXOs accrue rewards based on ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "UTXO value", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "nlocktime", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": ". Click here for more detailed technical information.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "In simpler terms, the calculation of rewards depends on an optional value included in a transaction's data, called ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "nLockTime", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": ". Most wallets do not set this parameter. Komodo Wallet and Verus Desktop does, and thanks to the work of Luke Childs, a Ledger device running the latest firmware also does. In general, transactions from an exchange do not set nLockTime, so if you received funds from an exchange with nLockTime not set, rewards will not accrue. To overcome this, the easiest method is to send the funds to yourself from within any of the above mentioned wallets. When we say “send the funds to yourself”, it means from your address, to that same address.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "komodo-active-user-reward-all-you-need-to-know" + }, + { + "text": "How much is my reward?", + "tagName": "h3", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "You can check your accrued rewards at the following websites:", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Dexstats Dashboard - Komodo Ecosystem", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Dexstats Dashboard - Komodo Ecosystem", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "How do I claim the 0.01% Active User Reward?", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "You need to have a ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "minimum of 10 Komodo", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " in your address as a ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "single UTXO", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " that is about 60 blocks (~60 minutes) old.", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "If you have multiple UTXOs less than 10 KMD each, your address will not accrue rewards. To ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "consolidate funds", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ", you can send all funds to your own address.", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Verify that ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "LockTime", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " for that transaction is set. You can verify this by searching the txid in a KMD explorer ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "https://kmdexplorer.io", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "https://kmdexplorer.io", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Confirm that the ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "LockTime", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " value is set as a UNIX timestamp (Ex: 1545050262). You can translate the timestamp to local time using ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "EpochConverter", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "EpochConverter", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Not all 3rd party wallets set locktime, and as a result, you may not accrue rewards while using them. If in doubt, send your balance to yourself using a supported wallet to set the LockTime.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Which wallets can I use?", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Always make sure to use the latest releases. Please don't use old versions, as they may not work and could be lacking essential features.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Verus Desktop (", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo CLI binaries (", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "KomodoOceanQT Wallet (", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Wallet Desktop (", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Wallet Mobile (", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "If you store funds on an exchange and you don't control your private keys you CANNOT claim the reward. Third-party wallets may also not support reward payment, check by sending your funds to yourself to confirm (this should trigger a reward payout event).", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Additional guides are available at the links below:", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Ledger device", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " (hardware wallet) - ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Active User Reward on Hardware Wallets (Ledger/Trezor)", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Active User Reward on Hardware Wallets (Ledger/Trezor)", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Important Info:", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "3rd party hardware or software wallets may not support the Komodo 0.01% Active User Reward.", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "New KMD coins are rewarded to users when they make transactions. This includes either sending funds to others or yourself.", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Rewards stop accruing after one month (unless a transaction is made).", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "The total rate is ~0.01% per year if done monthly or more often", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Using Native Mode may send funds to a change address - make sure to ", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "backup your wallet.dat file and private key", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " afterwards.", + "tagName": "li", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "backup your wallet.dat file and private key", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "If you face any issues, please join us at the ", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Discord", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": " to talk to our community.", + "tagName": "p", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + }, + { + "text": "Komodo Discord", + "tagName": "a", + "path": "komodo/active-user-reward", + "closestElementReference": "how-much-is-my-reward" + } + ], + "komodo/block-1m-changes": [ + { + "text": "Changes to Komodo Blockchain at Block Height 1 Million", + "tagName": "h1", + "path": "komodo/block-1m-changes", + "closestElementReference": "changes-to-komodo-blockchain-at-block-height-1-million" + }, + { + "text": "When the Komodo Blockchain reaches the Block Height 1000000, two notable changes are scheduled to happen. Block 1000000 is expected to happen in the first half of September 2018.", + "tagName": "p", + "path": "komodo/block-1m-changes", + "closestElementReference": "changes-to-komodo-blockchain-at-block-height-1-million" + }, + { + "text": "Rewards", + "tagName": "h2", + "path": "komodo/block-1m-changes", + "closestElementReference": "rewards" + }, + { + "text": "Currently, the rewards mechanism will cap the amount of accrued rewards after 1 year. For example, if the coins sit in the same address for more than a full year, the amount of rewards will stop accruing at 5% total. This mechasism is being changed to cap the amount of accrued rewards after 1 month. This means in order to receive the maximum amount of rewards, a user must claim them at least once per month. This in turn, changes the amount of rewards to 5.1% per year.", + "tagName": "p", + "path": "komodo/block-1m-changes", + "closestElementReference": "rewards" + }, + { + "text": "This change is being made to encourage users to be active and use KMD more often.", + "tagName": "p", + "path": "komodo/block-1m-changes", + "closestElementReference": "rewards" + }, + { + "text": "\"Free for All\" part of Mining", + "tagName": "h2", + "path": "komodo/block-1m-changes", + "closestElementReference": "free-for-all-part-of-mining" + }, + { + "text": "Currently, every 2000 blocks, there is a 64 block period in which notary nodes are unable to mine with easy difficulty. After block 1000000, this 64 block period will be removed. We have deployed a new method that calibrates the non-notary mining to 25%, and this process also performs the calibration to non-notary hashrate that the free for all period was designed to achieve. With the removal of the free for all, the mining returns will not go through any dramatic changes every 2000 blocks, but rather stay relatively constant throughout.", + "tagName": "p", + "path": "komodo/block-1m-changes", + "closestElementReference": "free-for-all-part-of-mining" + }, + { + "text": "This change is being made to discourage miners from only mining during these 64 block periods.", + "tagName": "p", + "path": "komodo/block-1m-changes", + "closestElementReference": "free-for-all-part-of-mining" + } + ], + "komodo/coin-emission": [ + { + "text": "Inflation Mechanisms", + "tagName": "h1", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "New KMD coins are created in two ways:", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "Mining (Normal mining - ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "25%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " and notary mining - ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "75%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "Rewards", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " (~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "5.1%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " reward to active users that have atleast ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "10 KMD", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " till KMD blockheight ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "3484958", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": ". ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "0.001%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " after)", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "Rewards", + "tagName": "a", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "The emission schedule for KMD is as follows:", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "3 KMD per block till the block height of KMD reaches ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": ". This is the same block height at which Reward creation stops", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "2 KMD per block from the block height ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " till the block height of KMD reaches ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "2 * 7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "1 KMD per block from the block height ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "2 * 7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": " till forever", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "Let us explore the amount of KMD created each year through these two mechanisms.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "inflation-mechanisms" + }, + { + "text": "Mining", + "tagName": "h2", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "Each block of KMD mined, creates ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "3 KMD", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "KMD block creation rate: 1 block per minute", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "Total minutes in a year = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "365 * 1440", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "525600", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "Total KMD mined in a year = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "525600 * 3", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "1576800", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "1.58", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "Out of the above mining rewards,", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "25%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " is mined by normal miners = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "0.25 * 1576800", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "394200", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "0.4", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "75%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " is mined by notaries = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "0.75 * 1576800", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "1182600", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "1.18", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "mining" + }, + { + "text": "Rewards till KMD blockheight 3484958", + "tagName": "h2", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "Rewards", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": ", more accurately called the \"Active User Rewards\", are a unique feature to Komodo, made possible by our consensus mechanism ", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "Delayed Proof of Work (dPoW)", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": ". The important point to note is that, as KMD chain is secured by dPoW (thereby recycling BTC chain's hash power), there is no need to attract huge quantities of its own hash power for security. This is the rationale behind having a ", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "75%", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": " notary mining even in the comparitively smaller amount of the mining induced inflation.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "Rewards", + "tagName": "a", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "Delayed Proof of Work (dPoW)", + "tagName": "a", + "path": "komodo/coin-emission", + "closestElementReference": "rewards-till-kmd-blockheight-3484958" + }, + { + "text": "How Rewards work till KMD blockheight 3484958", + "tagName": "h3", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "Any utxo on the KMD chain whose age is greater than ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "1 hour", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": " and value greater than ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "10 KMD", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": " is eligible to send a transaction whose output is greater than its input.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "The amount that can be claimed keeps increasing as the age of the utxo increases and caps at the age of 1 month. If the utxo hasn't claimed the rewards or done another transaction in a month, the rewards are capped.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "The monthly reward comes out to be approximately: ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "0.42%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": ". Please see this ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "source code", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": " to learn about the exact way the rewards are calculated.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "source code", + "tagName": "a", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "The above rule and the value of extra satoshis that can be claimed is part of the KMD chain's consensus rules", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "The total value of the rewards that can be claimed by a person claiming at least once a month compounded is approximately ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "5.1%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "Rewards cannot be claimed by utxos created after the KMD block height: ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-till-kmd-blockheight-3484958" + }, + { + "text": "Now let us calculate the inflation caused by Rewards", + "tagName": "h4", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "Assume that, all the KMD currently in circulation is in utxos whose size is greater than ", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " and all the users will claim at least once a month for the next 1 year = 12 months.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "This is not actually the reality, as many exchanges and cold storage wallets\ndon't regularly claim their rewards. These unclaimed rewards are minable.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "KMD in circulation currently: ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "137795227", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "137.7", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "Approximate amount of rewards claimable (excluding the mined KMD as that too will be eligible to claim rewards) = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "137795227 * 0.051", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "7027556", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "7.02", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards" + }, + { + "text": "How Rewards work after KMD blockheight 3484958", + "tagName": "h3", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "Any utxo on the KMD chain whose age is greater than ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "1 hour", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": " and value greater than ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "10 KMD", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": " is eligible to send a transaction whose output is greater than its input.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "The amount that can be claimed keeps increasing as the age of the utxo increases and caps at the age of 1 month. If the utxo hasn't claimed the rewards or done another transaction in a month, the rewards are capped.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "The monthly reward comes out to be approximately: ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "0.00083%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": ". Please see this ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "source code", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": " to learn about the exact way the rewards are calculated.", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "source code", + "tagName": "a", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "The above rule and the value of extra satoshis that can be claimed is part of the KMD chain's consensus rules", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "The total value of the rewards that can be claimed by a person claiming at least once a month compounded is approximately ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "0.01%", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "Rewards cannot be claimed by utxos created after the KMD block height: ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "7777777", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "how-rewards-work-after-kmd-blockheight-3484958" + }, + { + "text": "Now let us calculate the inflation caused by Rewards", + "tagName": "h4", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "Assume that, all the KMD currently in circulation is in utxos whose size is greater than ", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " and all the users will claim at least once a month for the next 1 year = 12 months.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "This is not actually the reality, as many exchanges and cold storage wallets\ndon't regularly claim their rewards. These unclaimed rewards are minable.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "KMD in circulation: ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "137795227", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "137.7", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "Approximate amount of rewards claimable (excluding the mined KMD as that too will be eligible to claim rewards) = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "137795227 * 0.0001", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "13779", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "13.77", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": " thousand", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "now-let-us-calculate-the-inflation-caused-by-rewards-2" + }, + { + "text": "Summary", + "tagName": "h2", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "Till KMD blockheight 3484958 in 1 year:", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by normal miners : ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "0.4", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by notaries : ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "1.18", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by claims of the \"Active User Reward\": ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "7.02", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "After KMD blockheight 3484958 in 1 year:", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by normal miners : ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "0.4", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by notaries : ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "1.18", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " million", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "KMD created by claims of the \"Active User Reward\": ~ ", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "13.77", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": " thousand", + "tagName": "li", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + }, + { + "text": "Also worth observing is that, while the mining rewards stay the same for both\nnotaries and miners, the KMD produced through the rewards claim process keeps\nincreasing every year as the amount of KMD held by the community increases.", + "tagName": "p", + "path": "komodo/coin-emission", + "closestElementReference": "summary" + } + ], + "komodo/convert-pubkey-address": [ + { + "text": "Convert Pubkey to Komodo Address", + "tagName": "h1", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Make sure Python3 is ", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "installed", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": " in your system.", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "installed", + "tagName": "a", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Install python-bitcoinlib:", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Create a file named ", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "pubkey-address.py", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Enter the following code in the file and save:", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Open a terminal and ", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "cd", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": " to the directory where the file is located.", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Run ", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "python3 pubkey-address.py", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": " in the terminal.", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Input the pubkey at the prompt and hit ", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Enter", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "The Komodo address will be displayed.", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + }, + { + "text": "Example:", + "tagName": "li", + "path": "komodo/convert-pubkey-address", + "closestElementReference": "convert-pubkey-to-komodo-address" + } + ], + "komodo/dpow-conf": [ + { + "text": "Number of confirmations displayed based on dPoW status", + "tagName": "h1", + "path": "komodo/dpow-conf", + "closestElementReference": "number-of-confirmations-displayed-based-on-d-po-w-status" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "A new feature has been added to the Komodo daemon (", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "komodod", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": ") that changes the behaviour of the value displayed for ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "\"confirmations\":", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": " which is output on calling ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "gettxout", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "getblock", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": " through the ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "The new behaviour is as follows:", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "0 confirmations means the tx is not confirmed yet", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "1 confirmation means the tx is confirmed on the network, but not dPoW'd yet (Explorers may show different confirmation values and wouldn't match till atleast one notarization happens. ", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "rawconfirmations", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": " value will match, which is only visible if you are quering via CLI.)", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "any other confirmation number means the tx is secure with dPoW", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "This feature is helpful for exchanges mainly and for users who prefer security. This will work automatically for Native mode for KMD or any other smartchain. SPV mode doesn't have this feature implemented and will not show dPoW Conf data. Upon seeing a confirmation number more than 1, exchanges can simply credit the deposit to a user being sure that the transaction is secure and can't be double-spent.", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "introduction" + }, + { + "text": "A practical example of how number of confirmations are displayed after this update", + "tagName": "h2", + "path": "komodo/dpow-conf", + "closestElementReference": "a-practical-example-of-how-number-of-confirmations-are-displayed-after-this-update" + }, + { + "text": "Stage 1", + "tagName": "h3", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-1" + }, + { + "text": "\"confirmations\": 0,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-1" + }, + { + "text": "Stage 2", + "tagName": "h3", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-2" + }, + { + "text": "\"confirmations\": 1,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-2" + }, + { + "text": "\"confirmations\": 1,", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-2" + }, + { + "text": "\"rawconfirmations\": 1", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-2" + }, + { + "text": "\"rawconfirmations\": 1", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-2" + }, + { + "text": "Stage 3: After 5 Blocks are added", + "tagName": "h3", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-3-after-5-blocks-are-added" + }, + { + "text": "\"confirmations\": 1,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-3-after-5-blocks-are-added" + }, + { + "text": "\"confirmations\": 1,", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-3-after-5-blocks-are-added" + }, + { + "text": "\"rawconfirmations\": 5,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-3-after-5-blocks-are-added" + }, + { + "text": "\"rawconfirmations\": 5,", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-3-after-5-blocks-are-added" + }, + { + "text": "Stage 4: After 12 Blocks are added and when a notarization happens", + "tagName": "h3", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"confirmations\": 12,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"confirmations\": 12,", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"rawconfirmations\": 12,", + "tagName": "li", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"rawconfirmations\": 12,", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "As seen in the above example, the value corresponding to the ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"confirmations\":", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " is greater than 1 only after the transaction/block is secured by dPoW. So exchanges can just keep track of the value of ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"confirmations\":", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " and consider the transaction as final when the value is neither ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "0 nor 1", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "; any value greater than ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " for the ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "\"confirmations\":", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " field means the transaction is dPoW'd and secure.", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "It has been implemented in such a way that exchanges can integrate this double-spend prevention mechanism with no major code changes if they have been checking for the number of confirmations from ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "komodod", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " previously. Essentially, confirmations have been made dPOW aware: Confirmations will never go above 1 until a transaction is notarized.", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "So ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "confirmations <= 1", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " means not notarized, ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "confirmations > 1", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": " means notarized. Since all exchanges wait for more than ", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": "1 confirmation", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + }, + { + "text": ", their systems will only work on notarized transactions.", + "tagName": "p", + "path": "komodo/dpow-conf", + "closestElementReference": "stage-4-after-12-blocks-are-added-and-when-a-notarization-happens" + } + ], + "komodo/encrypt-wallet": [ + { + "text": "Encrypt Komodo's ", + "tagName": "h1", + "path": "komodo/encrypt-wallet", + "closestElementReference": "file" + }, + { + "text": "wallet.dat", + "tagName": "h1", + "path": "komodo/encrypt-wallet", + "closestElementReference": "file" + }, + { + "text": " File", + "tagName": "h1", + "path": "komodo/encrypt-wallet", + "closestElementReference": "file" + }, + { + "text": "How to Encrypt Komodo ", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": "wallet.dat", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": " with password to make it more secure?", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": "Komodo supports ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": " RPC to secure your ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": " file. After encrypting your wallet, you need to unlock it before making any transaction or dumping privkey of an address. This prevents unauthorized access to the coins stored in your wallet.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "with-password-to-make-it-more-secure" + }, + { + "text": "Requirements:", + "tagName": "h3", + "path": "komodo/encrypt-wallet", + "closestElementReference": "requirements" + }, + { + "text": "Native wallet daemon for KMD and/or any ", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "requirements" + }, + { + "text": "-ac_public", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "requirements" + }, + { + "text": " chains. (This feature is not applicable to SPV or Lite mode)", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "requirements" + }, + { + "text": "Precautions / Best Practices:", + "tagName": "h3", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Don't encrypt any wallet with private addresses (", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "z-addresses", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "). Transfer your funds from a private z address to transparent R address first.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Don't encrypt any wallet with private addresses (", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "z-addresses", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "). Transfer your funds from a private z address to transparent R address first.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Don't forget your password. If you do, you will lose access to your funds.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Don't forget your password. If you do, you will lose access to your funds.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Use a strong password containing letters (UPPERCASE, lowercase), numbers, special characters.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Use a strong password containing letters (UPPERCASE, lowercase), numbers, special characters.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Always keep a backup or write down your password, passphrase and private keys in a safe place.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Always keep a backup or write down your password, passphrase and private keys in a safe place.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Always back up your ", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "wallet.dat", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": " in a safe place. It is recommended to do it after every send transaction.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Always back up your ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": " in a safe place. It is recommended to do it after every send transaction.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "You are responsible for your funds, not the developers. Always ", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "ask", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": " when in doubt.", + "tagName": "li", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "You are responsible for your funds, not the developers. Always ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "ask", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": " when in doubt.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "ask", + "tagName": "a", + "path": "komodo/encrypt-wallet", + "closestElementReference": "precautions-best-practices" + }, + { + "text": "Encrypt your Wallet with a Password", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": " command will encrypt your ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": " with a password that you provide. ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "Usage:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "encryptwallet \"password\"", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "Example:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "Issuing this command will return you the following output and shut down the daemon.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "Now, start your native coin wallet again. Your ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": " is already encrypted. Most of the wallet features will now require you to unlock the wallet first before performing those actions. You will get output like below:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "That means, without unlocking your wallet, you can't send funds or dump private key of any address that the wallet holds. Follow the next step for commands to unlock your wallet.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "encrypt-your-wallet-with-a-password" + }, + { + "text": "Unlock Wallet", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "You need to use ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "walletpassphrase", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": " command with your password and timeout time to unlock your wallet for sending funds or some other actions. Use the ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "timeout", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": " option to set a timer for how many seconds the wallet will be unlocked before locking automatically. ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "Usage:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "walletpassphrase \"passphrase\" timeout", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "Example:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "This above command will unlock your wallet for 60 seconds and will ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "NOT", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": " return any output in your console. You can perform any actions with your wallet without any restrictions in the next 60 seconds. Change the timeout numbers to your liking.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "unlock-wallet" + }, + { + "text": "Lock Wallet", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": "If you want to lock the wallet before the ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": "timeout", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": " specified is reached, use the command ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": "walletlock", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": "Example:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "lock-wallet" + }, + { + "text": "How to change password?", + "tagName": "h2", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "Usage:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "walletpassphrasechange \"oldpassphrase\" \"newpassphrase\"", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "Example:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "After issuing this command, there will be no output in your teminal console. But, ", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "debug.log", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": " will print a similar line:", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + }, + { + "text": "This means your password has been changed successfully. Use the new password for unlocking your wallet from this time onward until you change it again.", + "tagName": "p", + "path": "komodo/encrypt-wallet", + "closestElementReference": "how-to-change-password" + } + ], + "komodo": [ + { + "text": "Building Komodo from source", + "tagName": "h1", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "For OSx instructions: see ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "Installing Komodo on OSX", + "tagName": "p", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "Installing Komodo on OSX", + "tagName": "a", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "For Windows instructions: see ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "Installing Komodo on Windows 64-bit systems", + "tagName": "p", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "Installing Komodo on Windows 64-bit systems", + "tagName": "a", + "path": "komodo", + "closestElementReference": "building-komodo-from-source" + }, + { + "text": "Installing Komodo on Ubuntu/Debian", + "tagName": "h2", + "path": "komodo", + "closestElementReference": "installing-komodo-on-ubuntu-debian" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Currently, you will need:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Linux (easiest with a Debian-based distribution)", + "tagName": "li", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Linux (easiest with a Debian-based distribution)", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "For Ubuntu, we recommend using only the 16.04 or 18.04 releases", + "tagName": "li", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "For Ubuntu, we recommend using only the 16.04 or 18.04 releases", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "64-bit", + "tagName": "li", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "64-bit", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 4GB of free RAM (8GB+ recommended)", + "tagName": "li", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 4GB of free RAM (8GB+ recommended)", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements" + }, + { + "text": "Get Started", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "get-started" + }, + { + "text": "Log in as the user to your system, and issue these commands to make sure your Linux machine is up to date.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "get-started" + }, + { + "text": "Install the dependency packages", + "tagName": "h4", + "path": "komodo", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "This takes some time depending your internet connection. Let it run in the background. Now it is time to install Komodo. Follow each line step by step and ignore the \"libgmp headers missing\" at some point!", + "tagName": "p", + "path": "komodo", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "Installing Komodo", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": "-j8", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": " uses 8 threads - replace ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": "8", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": " with number of threads you want to use or use the ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": "nproc", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": " variable to use all threads.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": "This can take some time.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo" + }, + { + "text": "When it is finished, let's create ", + "tagName": "h4", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "komodo.conf", + "tagName": "h4", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Add the following lines to the ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " file (replace ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " with your own)", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Press ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "CTRL+O", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " to save the changes.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Press ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "CTRL+O", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " to save the changes.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Press ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "CTRL+X", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " to exit nano editor.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Press ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "CTRL+X", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " to exit nano editor.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Now you can start komodod daemon to sync with the network", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "You might see some outputs in terminal where you started the ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "komodod", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " daemon. So, open a new tab or new terminal window and go to Komodo data directory to see updated logs of Komodo:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "After ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "tail", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " command it will start showing logs update to you as it syncs with the network. If you want to terminate this command just press ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "CTRL+C", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "In another terminal window you can go to Komodo source directory and use ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " command to check the latest update info. like:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "This will show you latest info of blockchain and wallet like this:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "in this output when you see ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "\"blocks\"", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "\"longestchain\"", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": " values showing same, your wallet is in full sync.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "komodo-conf" + }, + { + "text": "Updating Komodo installation to the latest version", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "If you already have installed Komodo from it's source code on your machine, and need to update to the latest version, follow the below steps.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Please follow each step carefully and don't skip to the next one until the previous step is successfully completed. If you have the ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "komodo daemon", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": " running, you can leave it running while updating if you have enough resources in your machine. If you prefer to stop it before updating, please use ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": " to stop the daemon and proceed with the following steps to update.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Navigate to your komodo directory", + "tagName": "li", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Make sure you don't have any changes made to the source and reset it. This will ensure clean source and shouldn't create issues while pulling the latest source in the next step.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Clean the source directory", + "tagName": "li", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Update the source. (If you have any changes made to the source code, this command may not pull the latest source. Please make sure you have followed the previous steps)", + "tagName": "li", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Compile the latest binary", + "tagName": "li", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "Start your sevices as usual. If you didn't stop the deamon before compiling, please stop it using ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": " and start again.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "If you are in a hurry, most of the time the below steps can be used to update the daemon and it takes lesser amount of time to compile. But it is a good practice to follow the steps outlined above to make sure the compilation process completes without an error.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "updating-komodo-installation-to-the-latest-version" + }, + { + "text": "IMPORTANT: Backup your wallet", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "We can not stress enough to take a backup of your wallet.dat file time to time. Here's the reason why:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "When you send some funds from an address, sometimes the funds used from the unspent transaction outputs (utxo) leaves a change behind. This change doesn't go back to the same address the funds sent from. This change goes to a new address. And this new address is stored in the wallet.dat file located in Komodo data directory on your machine.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "When you send some funds from an address, sometimes the funds used from the unspent transaction outputs (utxo) leaves a change behind. This change doesn't go back to the same address the funds sent from. This change goes to a new address. And this new address is stored in the wallet.dat file located in Komodo data directory on your machine.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "Sometimes your wallet.dat file may got corrupted. It's always good to have backup handy.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "Sometimes your wallet.dat file may got corrupted. It's always good to have backup handy.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "If you are not sure when to take backup of your wallet.dat file, just take backup of it according to how often your use. If you use it regularly, then just take a backup of your wallet.dat file at then end of day. If not so often then maybe twice a week or depending on your use adjust your time period of taking backup.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "You can find your wallet.dat file under linux at ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "~/.komodo/wallet.dat", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "To backup you can take a copy of this file and make archive of it.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "important-backup-your-wallet" + }, + { + "text": "Installing Komodo on OSX", + "tagName": "h2", + "path": "komodo", + "closestElementReference": "installing-komodo-on-osx" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "Ensure commandline tools from apple/xcode are installed. Issue the following command in a terminal.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "brew", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": " is needed to install dependencies. If you have latest ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "brew", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": " installed in your system already, skip this and install the deps directly.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "These are the dependencies needed to install with ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "brew", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo", + "closestElementReference": "requirements-2" + }, + { + "text": "Clone the Komodo repository", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "clone-the-komodo-repository" + }, + { + "text": "Get the Zcash params:", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "get-the-zcash-params" + }, + { + "text": "Compile Komodo", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "compile-komodo" + }, + { + "text": "This can take some time, so let's create a configuration file in the mean time using a fresh terminal.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "compile-komodo" + }, + { + "text": "Create configuration file", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "create-configuration-file" + }, + { + "text": "The configuration file should be created in the following directory:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "create-configuration-file" + }, + { + "text": "Create the directory if it's missing:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "create-configuration-file" + }, + { + "text": "and create the configuration file by entering this in terminal:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "create-configuration-file" + }, + { + "text": "Run Komodo", + "tagName": "h3", + "path": "komodo", + "closestElementReference": "run-komodo" + }, + { + "text": "If the build went well, run komodo:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "run-komodo" + }, + { + "text": "To track progress of downloading the Komodo blockchain:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "run-komodo" + }, + { + "text": "or get info with the getinfo command:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "run-komodo" + }, + { + "text": "Installing Komodo on Windows 64-bit systems", + "tagName": "h2", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "PLEASE FOLLOW THE VIDEO TUTORIAL: ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "https://www.youtube.com/watch?v=gfZZy8b222E", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "https://www.youtube.com/watch?v=gfZZy8b222E", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "First download komodo windows ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "binaries", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": " and place the files in a new folder on the Desktop called kmd ('", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "C:\\\\Users\\\\YourUserName\\\\Desktop\\\\kmd", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "') .", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "binaries", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Open a Command Prompt for the following steps.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Next we'll create the Komodo directory in the ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "AppData", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": " directory.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Next we will create our ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "komodo.conf", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": " file.", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "When Notepad opens, click ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Yes", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": " to create the komodo.conf file. Copy the information below and paste it into Notepad.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "After pasting, save and exit Notepad.", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Create the directory for ZcashParams:", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "And download following files in ", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "ZcashParams", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": " folder:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-proving.key", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-proving.key", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-verifying.key", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-verifying.key", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-spend.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-spend.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-output.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-output.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-groth16.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-groth16.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Now we can run ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "komodod.exe", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Komodod should start syncing. You can check progress by running", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "To stop ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "komodod", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": ", run:", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Downloads:", + "tagName": "p", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "Windows Binaries: ", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/releases", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/releases", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-proving.key", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-proving.key", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-verifying.key", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-verifying.key", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-spend.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-spend.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-output.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sapling-output.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-groth16.params", + "tagName": "li", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + }, + { + "text": "sprout-groth16.params", + "tagName": "a", + "path": "komodo", + "closestElementReference": "installing-komodo-on-windows-64-bit-systems" + } + ], + "komodo/multisig-transactions-on-komodo-or-smartchains": [ + { + "text": "Dealing with Multisig addresses and transactions", + "tagName": "h1", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "Multisignature (often called multisig) is a form of technology used to add additional security for cryptocurrency transactions. Multisignature addresses require another user or users sign a transaction before it can be broadcast onto the block chain. ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "(Source: Wikipedia)", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "In this short guide, we will demonstrate the creation and usage of a ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "2of2", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": " multisignature wallet. We'll use 2 nodes and the Komodo chain. On a Komodo smartchain, follow the same steps but add the ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "-ac_name=COIN", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "There are various tools you can use for ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "multisig", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": ". Check the ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "related materials section", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": " at the end of this guide for links.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "related materials section", + "tagName": "a", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "dealing-with-multisig-addresses-and-transactions" + }, + { + "text": "Step 1 - Get new addresses, corresponding pubkeys and privkeys", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-1-get-new-addresses-corresponding-pubkeys-and-privkeys" + }, + { + "text": "First, let's create addresses on the two nodes. Then we will combine them into a single multisig address. We will also need the pubkey and privkey (WIF) for each address:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-1-get-new-addresses-corresponding-pubkeys-and-privkeys" + }, + { + "text": "Node 1", + "tagName": "h3", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-1" + }, + { + "text": "Generate a new address", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Get the pubkey value using ", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress" + }, + { + "text": "Get the private key (WIF)", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "To summarise data from Node 1", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "to-summarise-data-from-node-1" + }, + { + "text": "Node 2", + "tagName": "h3", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2" + }, + { + "text": "On a different node, follow the same steps to generate new address, validate and export the private key.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2" + }, + { + "text": "Generate new address", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-new-address" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-new-address" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "generate-new-address" + }, + { + "text": "Get pubkey value using ", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress-2" + }, + { + "text": "validateaddress", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "validateaddress-2" + }, + { + "text": "Get the private key (WIF)", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "get-the-private-key-wif-2" + }, + { + "text": "To summarise data from Node 2", + "tagName": "h4", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "to-summarise-data-from-node-2" + }, + { + "text": "Step 2 - Create multisig Address", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "Now we can combine pubkeys to create a multisig (", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "2of2", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": " in this example) address. You can execute the following command on any node. The command will output the ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "redeemScript", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": " which is required to spend funds.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-2-create-multisig-address" + }, + { + "text": "Step 3 - Fund the multisig address", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-3-fund-the-multisig-address" + }, + { + "text": "Let's fund our multisig address. You can send funds from any source.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-3-fund-the-multisig-address" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-3-fund-the-multisig-address" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-3-fund-the-multisig-address" + }, + { + "text": "Step 4 - Create rawtransaction to spend funds", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "Now let's spend funds from the multisig address. We need to create a rawtransaction first. As inputs, we are using the unspent vout of the transaction through which the multisig address was funded. As the destination address, we use the address to which we want to send the funds.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "Please note that in this example, we are sending the whole deposited funds back, but in the case where you don't want to send all the amount, you have to manually specify a second (change) output. Because, by default the difference between inputs and outputs is counted as miner fee. Most probably you'll get the ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "AcceptToMemoryPool: absurdly high fees", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": " error because of this reason. (This type of transaction can be allowed by using an additional parameter to the ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": " method set to ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": " which actually sets ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "allowhighfees=true", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": ", but it is very unlikely that you want to do it).", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-4-create-rawtransaction-to-spend-funds" + }, + { + "text": "Step 5 - Sign the rawtransaction", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-5-sign-the-rawtransaction" + }, + { + "text": "You need to sign the raw transaction using both nodes to be able to broadcast & spend.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-5-sign-the-rawtransaction" + }, + { + "text": "Node 1", + "tagName": "h3", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-1-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-1-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-1-2" + }, + { + "text": "Node 2", + "tagName": "h3", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2-2" + }, + { + "text": "Use the HEX value obtained from Node 1's signature output and change the privkey to Node 2's privkey.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2-2" + }, + { + "text": "Comamnd:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2-2" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2-2" + }, + { + "text": "We need to broadcast the above raw HEX to finish sending our transaction.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "node-2-2" + }, + { + "text": "Step 6 - Broadcast the transaction", + "tagName": "h2", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "Finally we are ready to broadcast our multisig transaction:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "Where ", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "23c2aaaf458ada3f171ee5d274e8dcfc91b62099ec15e4b2d02da2b2d1172cb1", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": " is the output transaction id which you can use in an explorer or similar places to verify the transaction.", + "tagName": "p", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "step-6-broadcast-the-transaction" + }, + { + "text": "Related Materials", + "tagName": "h3", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "related-materials" + }, + { + "text": "Detailed Article in Russian Language", + "tagName": "li", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "related-materials" + }, + { + "text": "Detailed Article in Russian Language", + "tagName": "a", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "related-materials" + }, + { + "text": "Multisig Web Tool", + "tagName": "li", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "related-materials" + }, + { + "text": "Multisig Web Tool", + "tagName": "a", + "path": "komodo/multisig-transactions-on-komodo-or-smartchains", + "closestElementReference": "related-materials" + } + ], + "komodo/note-exchanges": [ + { + "text": "A Note to Exchanges", + "tagName": "h1", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": "When the Komodo daemon (", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": "komodod", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": ") is started with the parameter called ", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": "-exchange", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": ", the daemon ignores the rewards that can be collected from a UTXO when it is used in a transaction. This allows exchanges to manage their account balances against their accounting software without any modification during account reconciliation.", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "a-note-to-exchanges" + }, + { + "text": "Example", + "tagName": "h2", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "If you normally start the daemon using the command:", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "adding the - parameter ", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "-exchange", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": " will make it:", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "This post on Bitcointalk gives the context related to addition of the parameter to Komodo: ", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "https://bitcointalk.org/index.php?topic=1605144.msg17732151#msg17732151", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "https://bitcointalk.org/index.php?topic=1605144.msg17732151#msg17732151", + "tagName": "a", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "If you were already running the normal mode, to enable the parameter,", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "Backup all privkeys (launch ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "komodod", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": " with ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "-exportdir=", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": " and run ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "./komodo-cli dumpwallet ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "Start a totally new sync including a new ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "wallet.dat", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": ", launch with the same ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "exportdir", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": " and the parameter", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "Stop it before it gets too far and import all the privkeys backed up during step a) using ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "./komodo-cli importwallet ", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "Resume sync till it gets to chaintip", + "tagName": "li", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + }, + { + "text": "For example:", + "tagName": "p", + "path": "komodo/note-exchanges", + "closestElementReference": "example" + } + ], + "komodo/npm-module-komodo-rewards": [ + { + "text": "Calculate Komodo rewards using an npm module", + "tagName": "h1", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "When using this module after the KMD blockheight of ", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "3484958", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": ", please make sure the PR at ", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards/pull/1", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": " is merged and the updated code is published on npm.", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards/pull/1", + "tagName": "a", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "This module has been created by ", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "Luke Childs", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "Luke Childs", + "tagName": "a", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "Source code", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": ": ", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards", + "tagName": "a", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "npm module", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": ": ", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://www.npmjs.com/package/get-komodo-rewards", + "tagName": "li", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "https://www.npmjs.com/package/get-komodo-rewards", + "tagName": "a", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "calculate-komodo-rewards-using-an-npm-module" + }, + { + "text": "Install", + "tagName": "h2", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "install" + }, + { + "text": "Usage", + "tagName": "h2", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "usage" + }, + { + "text": "Pass in a utxo object and an integer of the ", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "usage" + }, + { + "text": "accrued rewards", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "usage" + }, + { + "text": " in satoshis will be returned.", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "usage" + }, + { + "text": "API", + "tagName": "h2", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "api" + }, + { + "text": "getKomodoRewards(utxo)", + "tagName": "h3", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "get-komodo-rewards-utxo" + }, + { + "text": "Returns the accrued rewards in satoshis.", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "get-komodo-rewards-utxo" + }, + { + "text": "Keys of the ", + "tagName": "h4", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "object" + }, + { + "text": "utxo", + "tagName": "h4", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "object" + }, + { + "text": " object", + "tagName": "h4", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "object" + }, + { + "text": "License", + "tagName": "h3", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "license" + }, + { + "text": "MIT © Atomic Labs", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "license" + }, + { + "text": "MIT © Luke Childs", + "tagName": "p", + "path": "komodo/npm-module-komodo-rewards", + "closestElementReference": "license" + } + ], + "komodo/python-rpc-komodod": [ + { + "text": "Access komodo daemons's JSON-RPC interface using Python", + "tagName": "h1", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "access-komodo-daemonss-json-rpc-interface-using-python" + }, + { + "text": "We use the package ", + "tagName": "p", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "access-komodo-daemonss-json-rpc-interface-using-python" + }, + { + "text": "slick-bitcoinrpc", + "tagName": "p", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "access-komodo-daemonss-json-rpc-interface-using-python" + }, + { + "text": "slick-bitcoinrpc", + "tagName": "a", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "access-komodo-daemonss-json-rpc-interface-using-python" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "installation" + }, + { + "text": "Installing the module ", + "tagName": "p", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "installation" + }, + { + "text": "slick-bitcoinrpc", + "tagName": "p", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "installation" + }, + { + "text": " and its dependencies.", + "tagName": "p", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "installation" + }, + { + "text": "Usage", + "tagName": "h2", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "Once the ", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "Proxy", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": " method is called, the object it returns can be used to access ", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "komodod", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "'s methods any number of times.", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "In general, there is no need to convert arguments to strings before they are passed in. But for the ", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "cclib", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": " methods, all the arguments need to be passed in as strings.", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "cclib", + "tagName": "a", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": "Find the rpcuser, rpcpassword, rpcport from the coin's ", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": ".conf", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + }, + { + "text": " file", + "tagName": "li", + "path": "komodo/python-rpc-komodod", + "closestElementReference": "usage" + } + ], + "komodo/security-setup-full-node": [ + { + "text": "Standard Security Setup for Nodes", + "tagName": "h1", + "path": "komodo/security-setup-full-node", + "closestElementReference": "standard-security-setup-for-nodes" + }, + { + "text": "Here are some steps to get a secured Komodo node. These are just some simple babysteps and to get a real secured server you also need to investigate why you need one. Only then you will understand that a secured server is imminent for hosting a Komodo Notary node.", + "tagName": "p", + "path": "komodo/security-setup-full-node", + "closestElementReference": "standard-security-setup-for-nodes" + }, + { + "text": "Step 1 - Install a minimal installation of Ubuntu", + "tagName": "h2", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": "Always use a ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": "minimal install", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": " of Ubuntu! If you don't do this and you use a standard iso of Ubuntu it will setup all kinds of services which you do not need. It will open up ports on your server which could be vulnerable to future exploits. So, the first step for a secured server is a minimal installation.", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": "minimal install", + "tagName": "a", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": "When installing a minimal setup of Ubuntu, be sure you select the OpenSSH server at the end of the graphical installation. Otherwise you cannot connect to your server if you are not using a KVM node.", + "tagName": "p", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-1-install-a-minimal-installation-of-ubuntu" + }, + { + "text": "Step 2 - Create your own private SSH keys", + "tagName": "h2", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-2-create-your-own-private-ssh-keys" + }, + { + "text": "By selecting the OpenSSH server at the installation, you also created a vulnerable spot. Hackers love brute forcing the SSH service. If you use a strong password, you're mostly safe to go for a while. But even when it is strong, it could be hijacked at some point, so it is wise to disable password login. We do this by creating our own SSH key, so we can use that later as the key to the front door of your server. ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-2-create-your-own-private-ssh-keys" + }, + { + "text": "Click here", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-2-create-your-own-private-ssh-keys" + }, + { + "text": " for a tutorial how to create your own SSH key.", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-2-create-your-own-private-ssh-keys" + }, + { + "text": "Click here", + "tagName": "a", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-2-create-your-own-private-ssh-keys" + }, + { + "text": "Step 3 - Create another user for your server and disable root account", + "tagName": "h2", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-3-create-another-user-for-your-server-and-disable-root-account" + }, + { + "text": "Root is the uberboss of your server. It can do everything without needing special permissions. So you might understand that this is also a vulnerability issue for your server. Although it is created by default, you should not use it. Only in special cases it is needed. Because root is the first name they try when they try to brute force your server, we need to disable it asap. But before we do that, we need to create a user which get the same root rights as root. Maybe you will ask yourself now \"what's the difference?\". Simple, the hacker needs to know the name of the new user before they can go on with their brute force attack. It is a tiny step to max security, but a very crucial one. ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-3-create-another-user-for-your-server-and-disable-root-account" + }, + { + "text": "Click here", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-3-create-another-user-for-your-server-and-disable-root-account" + }, + { + "text": " for a tutorial how to create a user with sudo rights on a Debian based system (don't worry, Ubuntu is a Debian based system ;))", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-3-create-another-user-for-your-server-and-disable-root-account" + }, + { + "text": "Click here", + "tagName": "a", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-3-create-another-user-for-your-server-and-disable-root-account" + }, + { + "text": "Step 4 - Login as the new user and copy your SSH key", + "tagName": "h2", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": "So now we have a new user (with root rights) and a freshly created SSH key we can now login to the server as the new user and store our SSH key on it. We can do this on a stupid way (creating .ssh dir, set the rights on it, creating authorized_keys file and set the permissions on it etc. etc.), but we are doing it the easy way. As logging into the server isn't part of any security course, I expect you already know how to do that. But to store our SSH key automatically we are doing this:", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": "This will setup the procedure to store your public SSH key on the server. Once the script gets access to the remote account, it modifies/creates the ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": "~/.ssh/authorized_keys", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": " files in your own home directory. It may also fix permissions of the user's home directory if they are inappropriate. After it has been doing its thingy, you'll notice you aren't logged in yet. So login again to your server on the normal way (", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": "ssh user@server.com", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": ") and you will notice that you do not have to enter your password again. It logs in straight away. This gives us the opportunity to disable password login and root access to the server.", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-4-login-as-the-new-user-and-copy-your-ssh-key" + }, + { + "text": "Step 5 - Disable password login and root access", + "tagName": "h2", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "Now it is time to secure your OpenSSH server. Yes, i know, people will tell you to change your SSH port to a different one then port 22, but personally I don't think it is needed. If they want your server so badly, they will scan your ports anyway and they will find out your new port you have assigned to it. It is better to secure your OpenSSH server. First we will disallow access for user root. Even when he is the uberboss...it is time to take over his job by disable the account for access. So login to your server as the user you have created and which can login with his SSH key (and be sure this works before you go on, otherwise you won't get in anymore). Then open up the config file of your OpenSSH server.", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "Find the following: ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "PermitRootLogin", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": " and set this to ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "no", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": ". (Make sure you have a non-root user with sudo privileges created already before doing this step and you can login using that user account. Otherwise, you will be locked out of your server.) So it will look like this:", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "Now find the following: ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "PasswordAuthentication", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": " and set this to ", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "NO", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": ". So it will look like this:", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "Save the file and restart your OpenSSH server by doing the following", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + }, + { + "text": "Open a second shell and try to login with your root account (do NOT log out the first shell. In case something went wrong, you are not able to login anymore). If everything went well then the root account is being blocked and even brute forcing the OpenSSH server has become impossible, because the server isn't accepting any kind of password.", + "tagName": "li", + "path": "komodo/security-setup-full-node", + "closestElementReference": "step-5-disable-password-login-and-root-access" + } + ], + "komodo/setup-electrumx-server": [ + { + "text": "Setup ElectrumX Server", + "tagName": "h1", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "An SPV Electrum Server is a server that provides \"lite mode\" type functionality. These servers run a full node, which maintains a copy of a blockchain's history (a.k.a.) \"native mode\". The electrum software allows developers and apps like Komodo DeFi Framework to communicate with the blockchain to query balances, transaction history or broadcast signed transactions without needing to download and sync the full chain locally.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "A list of known electrum servers is maintained at ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "It's recommended to run at least 2 - 3 electrum servers to ensure stable operation.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "Check out the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "ElectrumX Docs", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": " for more info.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "ElectrumX Docs", + "tagName": "a", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "setup-electrum-x-server" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "installation" + }, + { + "text": "Coin Configuration", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "If you are launching the electrum server for a new smartchain, you will have to add it to the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "~/electrumx-1/electrumx/lib/coins.py", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": " file. You can skip this step if seeting up an electrum server for KMD or another coin which already exists in this file.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "For example, using the RICK Smart Chain:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "NAME", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "SHORTNAME", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "RPC_PORT", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": " are to be changed accordingly.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "coin-configuration" + }, + { + "text": "Electrum Configuration", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "Run:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "Get your ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "RPC_USER", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "RPC_PASS", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "RPC_PORT", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " from your conf file, e.g. ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "~/.komodo/RICK/RICK.conf", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": ", then add them as below:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "You can read more about the available environment variables in the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "ElectrumX Docs", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "ElectrumX Docs", + "tagName": "a", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "Change the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "SERVICES", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " as required, and allow the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "SERVICES", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " ports through your firewall. E.g. ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "sudo ufw allow ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "For listing on Komodo DeFi Framework, wss (websocket) and ssl (secure socket) will be required. Please refer to the ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "EFF Certbot instructions", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " for details on setting up SSL certificates (this varies depending on OS and installed web server).", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "EFF Certbot instructions", + "tagName": "a", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "For example, using Ubuntu 20.04 and NGINX:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "Will create a cert file and key file, and update your nginx ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "sites-enabled", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": " config.\nAdd the path to these files in ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "/etc/electrumx_RICK.conf", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "electrum-configuration" + }, + { + "text": "Configure as a service", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "configure-as-a-service" + }, + { + "text": "Run:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "configure-as-a-service" + }, + { + "text": "Update the following fields in the file (leave the rest as it is):", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "configure-as-a-service" + }, + { + "text": "To check its status:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "configure-as-a-service" + }, + { + "text": "To review it's logs:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "configure-as-a-service" + }, + { + "text": "Confirm the server is running", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "confirm-the-server-is-running" + }, + { + "text": "To issue commands to the electrum server from a local terminal use (change the transaction ID below to one valid for the chain)", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "confirm-the-server-is-running" + }, + { + "text": "To confirm websockets are running:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "confirm-the-server-is-running" + }, + { + "text": "Maintainence", + "tagName": "h2", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + }, + { + "text": "To keep your electrum server running smoothly, it is recommended to compact the database once a week. We can do this with a ", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + }, + { + "text": "crontab", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + }, + { + "text": " entry as below:", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + }, + { + "text": "crontab", + "tagName": "a", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + }, + { + "text": "This means that every Wednesday at 3:33am, we'll stop the electrum service, compact the database, then restart the service. You should change the day of week for each of your electrum servers so that they dont all go down for maintainence at the same time.", + "tagName": "p", + "path": "komodo/setup-electrumx-server", + "closestElementReference": "maintainence" + } + ], + "komodo/use-bitcore-lib-komodo": [ + { + "text": "Using bitcore-lib-komodo", + "tagName": "h1", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": "This is an example of using the Komodo flavour of ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": "bitcore-lib", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": ": ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": "https://github.com/DeckerSU/bitcore-lib-komodo/", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": "https://github.com/DeckerSU/bitcore-lib-komodo/", + "tagName": "a", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "using-bitcore-lib-komodo" + }, + { + "text": "Installing the library", + "tagName": "h2", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": "The following commands install the required dependencies, ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": "nvm", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": "node v4", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": " and the ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": "bitcore-lib-komodo", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": " library", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "installing-the-library" + }, + { + "text": "Example script to generate a Komodo address - privkey pair using ", + "tagName": "h2", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": "bitcore-lib-komodo", + "tagName": "h2", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": "Add the following code to a script (named address-pair.js) in a directory where the above library is installed.", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": "Run it using ", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": "node v4", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "bitcore-lib-komodo" + }, + { + "text": "Output", + "tagName": "h2", + "path": "komodo/use-bitcore-lib-komodo", + "closestElementReference": "output" + } + ], + "komodo/using-key-value": [ + { + "text": "Using the Key-Value feature", + "tagName": "h1", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "To search for a key in the whole blockchain database, use the following command:", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "To create or update a new Key/Value entry in blockchain and also securing it with your own custom password specific to tha Key/Value pair, use the following example:", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "Output:", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "After updating you'll find the details of the same key/value entry in blockchain will reflect the new data.", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "Output", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "You can also set custom expiry date for the key/value with the following example command:", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "kvupdate = command", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "hello = key", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "\"ehlo world\" = value", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "125 = days (will set 1440 blocks per day x 125)", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "testpassphrase = passphrase for key hello", + "tagName": "p", + "path": "komodo/using-key-value", + "closestElementReference": "using-the-key-value-feature" + }, + { + "text": "FAQ", + "tagName": "h2", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": "How much does KV storage cost?", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": "You pay a transaction fee depending on both the key ", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": "and", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": " value size. But it depends on which chain you want to store the kv-entry. You can use a Komodo Smart Chain and pay the fee in the Smart Chain's tokens or you can use KV chain and use it there. But each Smart Chain has the KV capability. So you could even use your own chain for it (due to difference in costs).", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": "You pay a transaction fee depending on both the key ", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": "and", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + }, + { + "text": " value size. But it depends on which chain you want to store the kv-entry. You can use a Komodo Smart Chain and pay the fee in the Smart Chain's tokens or you can use KV chain and use it there. But each Smart Chain has the KV capability. So you could even use your own chain for it (due to difference in costs).", + "tagName": "li", + "path": "komodo/using-key-value", + "closestElementReference": "faq" + } + ], + "komodo/vote-in-komodo-polls-and-elections/hardware-wallet": [ + { + "text": "How to Vote with Your Hardware Wallet", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Trezor users can use ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Komodo Wallet Web", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": ". Refer to these guides to log in and cast your vote:", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Komodo Wallet Web", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "How to Connect Trezor in Komodo Wallet Web", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "How to Connect Trezor in Komodo Wallet Web", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "How to vote with Komodo Wallet Web", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "How to vote with Komodo Wallet Web", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Ledger users can use ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " by following the steps below:", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "In a new tab, open ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " and enter a password for encrypting sensitive data.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Select your device type. For Ledger, make sure your Ledger is unlocked and has the KMD app open.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Click on the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "+", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " button under ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Holdings", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " (highlighted below).", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Select the voting token (will start with ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "KIP", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "VOTE", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": ").", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Scroll down to the bottom, to turn on ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Enable airdrop funds discovery", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " and click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Begin scan", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Select your device and click Connect.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Wait while addresses are scanned, then click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Confirm", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " to complete the activation of the selected coins. (If you don't see your balance, try incognito mode or a different browser. You can also try to reset your password for this app and create a new password).", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " button in the right-hand menu.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Review the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "poll options", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " (for KIPs) or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "candidates", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": " (for notary node elections) to find the associated address for the candidate or option you would like to support. Select the account which to send from, the amount to send and the address to send to, then click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Next", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "poll options", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "candidates", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Review and confirm the transaction details on your device.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Once your vote has been sent, you will see the result.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + }, + { + "text": "Click on the transaction ID to view your vote on the block explorer.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/hardware-wallet", + "closestElementReference": "how-to-vote-with-your-hardware-wallet" + } + ], + "komodo/vote-in-komodo-polls-and-elections": [ + { + "text": "How to Vote in Komodo Polls and Elections", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "From time to time, a community poll will be held for KMD holders to vote on. Details and options for these polls will be published in the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "KIPs repository", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Notary Node Candidates repository", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": " and broadcast via the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "KomodoPlatform twitter", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": ", weekly emails and ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "blog", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "KIPs repository", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Notary Node Candidates repository", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "KomodoPlatform twitter", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "blog", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Following a snapshot of the KMD blockchain, vote tokens are airdropped to all holders of KMD, equivalent to the amount of KMD held at the time of the snapshot (funds held in CEX wallets are excluded). Holders can vote using any supporting wallet, or via the command line.", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "To find the command line launch parameters for active KIP chains, refer to the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "dPoW repository", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "dPoW repository", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Refer to the list below for details on how to vote using supported wallets:", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Web", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Web", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Mobile", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Komodo Wallet Mobile", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Verus Desktop Wallet", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Verus Desktop Wallet", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Ledger and Trezor users", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + }, + { + "text": "Ledger and Trezor users", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections", + "closestElementReference": "how-to-vote-in-komodo-polls-and-elections" + } + ], + "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop": [ + { + "text": "How to Vote on Komodo Wallet Desktop", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Launch ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "import your seed phrase", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Launch ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "import your seed phrase", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "import your seed phrase", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "KIP", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "VOTE", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " tokens should be automatically activated on login. From within the Portfolio tab, click on the vote token. These tokens will be named ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "KIPxxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "VOTExxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": ", with the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "xxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "KIP", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "VOTE", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " tokens should be automatically activated on login. From within the Portfolio tab, click on the vote token. These tokens will be named ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "KIPxxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "VOTExxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": ", with the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "xxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " button to open the withdrawal form.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Review the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "poll options", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " (for KIPs) or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "candidates", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " (for notary node elections) to find the associated address for the candidate or option you would like to support, then input this address into the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Address of recipient", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " field at the top, and enter the amount of votes to send in the lower field.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "poll options", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "candidates", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Prepare", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " to review your vote transaction before sending. If you are happy with the details, click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " to cast your vote!", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Once the transaction has been broadcast, you will see a summary of the transaction.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": "View on Explorer", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + }, + { + "text": " button to see your vote on the block explorer.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-desktop", + "closestElementReference": "how-to-vote-on-komodo-wallet-desktop" + } + ], + "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile": [ + { + "text": "How to Vote on Komodo Wallet Mobile", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Launch ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Komodo Wallet Mobile", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "import your seed phrase", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Launch ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Komodo Wallet Mobile", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "import your seed phrase", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Komodo Wallet Mobile", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "import your seed phrase", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "KIP", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "VOTE", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " tokens should be automatically activated on login. From within the Portfolio tab, click on the vote token. These tokens will be named ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "KIPxxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "VOTExxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": ", with the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "xxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "KIP", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "VOTE", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " tokens should be automatically activated on login. From within the Portfolio tab, click on the vote token. These tokens will be named ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "KIPxxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "VOTExxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": ", with the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "xxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " button to open the withdrawal form.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Review the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "poll options", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " (for KIPs) or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "candidates", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " (for notary node elections) to find the associated address for the candidate or option you would like to support, then input this address into the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Recipient's address", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " field at the bottom, and enter the amount of votes to send in the top ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Amount", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " field.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "poll options", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "candidates", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Withdraw", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " to review your vote transaction before sending. If you are happy with the details, click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Confirm", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " to cast your vote!", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Once the transaction has been broadcast, you will see a new transaction appear in your wallet history.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Click on it to view the transaction details. Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "View", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " on ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": "Explorer", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + }, + { + "text": " button at the top right to see your vote on the block explorer.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-mobile", + "closestElementReference": "how-to-vote-on-komodo-wallet-mobile" + } + ], + "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web": [ + { + "text": "How to Vote on Komodo Wallet Web", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Launch ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Komodo Wallet Web", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "import your seed phrase", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " using the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Connect Wallet", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Launch ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Komodo Wallet Web", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " and log in to your wallet. If required, ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "import your seed phrase", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " using the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Connect Wallet", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button.", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Komodo Wallet Web", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "import your seed phrase", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "KIP", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "VOTE", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " tokens should be automatically activated on login (If not, use the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Add Assets", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button). From within the Wallet tab, click on the vote token. These tokens will be named ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "KIPxxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "VOTExxxx", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": ", with the xxxx portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "KIP", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "VOTE", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " tokens should be automatically activated on login (If not, use the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Add Assets", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button). From within the Wallet tab, click on the vote token. These tokens will be named ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "KIPxxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "VOTExxxx", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": ", with the xxxx portion being an identifying number to indicate which KIP or notary season vote the token represents.", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button to open the withdrawal form.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Review the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "poll options", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " (for KIPs) or ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "candidates", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " (for notary node elections) to find the associated address for the candidate or option you would like to support, then input this address into the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Recipient address", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " field at the top, and enter the amount of votes to send in the lower field.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "poll options", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "candidates", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Send", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " to review your vote transaction before sending. If you are happy with the details, click ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Confirm", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " to cast your vote!", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Once the transaction has been broadcast, you will see a summary of the transaction.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "Click the ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": "View on Explorer", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + }, + { + "text": " button to see your vote on the block explorer.", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/komodo-wallet-web", + "closestElementReference": "how-to-vote-on-komodo-wallet-web" + } + ], + "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet": [ + { + "text": "How to Vote on Verus Desktop Wallet", + "tagName": "h1", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Use the latest version of Verus Desktop wallet: ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Verus Desktop", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Verus Desktop", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download the file corresponding to the ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "VOTE / KIP", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": " coin you need:", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "VOTE2024: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "KIP0002: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "KIP0003: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "KIP0004: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "KIP0001: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "VOTE2023: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "VOTE2022: ", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "li", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Download Import File", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "How to use it: ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Import a coin in Verus Desktop using a chain definition file - YouTube", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Import a coin in Verus Desktop using a chain definition file - YouTube", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "The import file was created using: ", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "GitHub - VerusCoin/Verus-Coin-Importer: A simple tool to create coin files to import into Verus Desktop", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "GitHub - VerusCoin/Verus-Coin-Importer: A simple tool to create coin files to import into Verus Desktop", + "tagName": "a", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + }, + { + "text": "Use at your own risk!", + "tagName": "p", + "path": "komodo/vote-in-komodo-polls-and-elections/verus-desktop-wallet", + "closestElementReference": "how-to-vote-on-verus-desktop-wallet" + } + ], + "komodo-defi-framework/api/common_structures/activation": [ + { + "text": "Activation Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-structures" + }, + { + "text": "ActivationParams", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationParams", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " object defines additional parameters used for activation. These params may vary depending on the coin type.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| required_confirmations | integer | Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |\n| requires_notarization | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ". For ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "dPoW", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " protected coins, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " value will wait for transactions to be notarised when doing swaps. Overrides value if set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " file. |\n| priv_key_policy | string | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ". Set as ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " to activate in Trezor mode. |\n| min_addresses_number | integer | HD wallets only. How many additional addreesses to generate at a minimum. |\n| scan_policy | string | HD wallets only. Whether or not to scan for new addresses. Select from ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "do_not_scan", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "scan_if_new_wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ". Note that ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " will result in multple requests to the Komodo DeFi SDK. |\n| gap_limit | integer | HD wallets only. The max number of empty addresses in a row. If transactions were sent to an address outside the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "gap_limit", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ", they will not be identified when scanning. |\n| zcash_params_path | string | ZHTLC coins only. Path to folder containing Zcash parameters. Optional, defaults to standard location as defined in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "this guide", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " |\n| scan_blocks_per_iteration | integer | ZHTLC coins only. Sets the number of scanned blocks per iteration during ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "BuildingWalletDb", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " state. Optional, default value is 1000. |\n| scan_interval_ms | integer | ZHTLC coins only. Sets the interval in milliseconds between iterations of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "BuildingWalletDb", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " state. Optional, default value is 0. |\n| mode | object | QTUM, UTXO & ZHTLC coins only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "dPoW", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "this guide", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "For ZHTLC coins, older wallets need to set the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "sync_params", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " field to a date before its\nfirst transaction to see all balance and history. This may take a long time on the first\nactivation, but subsequent activations will be much faster.\nUsing a smaller ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "scan_blocks_per_iteration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": " and larger ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "scan_interval_ms", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": ",\nwill reduce the average CPU load during ZHTLC coin activation (at the cost of a\nlonger activation time). These optional fields are recommended when developing\nfor iOS, where a high CPU load may kill the activation process. Android &\ndesktop operating systems do not appear to have any problems with high CPU\nload during ZHTLC coin activation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Defines the activation mode for QTUM, BCH, UTXO & ZHTLC coins.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |\n| rpc | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Native", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " if running a native blockchain node, ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " if using electrum servers or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " for ZHTLC coins. |\n| rpc_data | object | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " mode only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Contains information about electrum & lightwallet_d servers for coins being used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " mode.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| light_wallet_d_servers | list | ZHTLC only. A list of urls which are hosting lightwallet_d servers for a coin. |\n| electrum_servers | list of objects | ZHTLC only. A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " objects. |\n| electrum | list of objects | QTUM, BCH & UTXO coins only. A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " objects. |\n| 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: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "\"earliest\"", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (the coin's sapling_activation_height), ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "height", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (a specific block height) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "date", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (a unix timestamp). |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "electrum_servers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " are both used for the same purpose. This should be consolidated in the API.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "Contains information electrum servers for coins being used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": " mode.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| url | string | The URL and port for an electrum server. |\n| ws_url | string | Optional, for WSS only. The URL and port for an electrum server's WSS port. |\n| protocol | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": ". Transport protocol used to connect to the server. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": " |\n| disable_cert_verification | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": ", this disables server SSL/TLS certificate verification (e.g. for self-signed certificates). ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "Use at your own risk!", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "activation-servers" + }, + { + "text": "ZHTLC Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "zhtlc-example" + }, + { + "text": "HD UTXO Activation (v2)", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "hd-utxo-activation-v2" + }, + { + "text": "CoinProtocol", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------ |\n| type | integer | One of the Coin Types supported by the Komodo DeFi Framework |\n| protocol_data | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- |\n| platform | string | Indicates the platform parent coin for EMV-like protocols, or the coin used for lightning nodes. |\n| network | string | Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "mainnet", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": " or `testnet |\n| confirmation_targets | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "ConfirmationTargets", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "ConfirmationTargets", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "EvmNode", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "EvmNode", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | ------------------------------------------------------------------------------------------------------------------- |\n| url | string | URL of an RPC node |\n| gui_auth | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": ". Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": " to access RPC nodes run officially by the Komodo Platform team |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "evm-node" + }, + { + "text": "TokensRequest", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": "TokensRequest", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| ticker | string | Ticker of the token to be enabled |\n| required_confirmations | integer | How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file; defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "tokens-request" + }, + { + "text": "UtxoMergeParams", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "utxo-merge-params" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "utxo-merge-params" + }, + { + "text": "UtxoMergeParams", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "utxo-merge-params" + }, + { + "text": " 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.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "utxo-merge-params" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| merge_at | integer | Mamimum UTXO count before merge loop is initiated. |\n| check_every | integer | How frequently (in blocks) the wallet UTXO count is evaluated. |\n| 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. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/activation", + "closestElementReference": "utxo-merge-params" + } + ], + "komodo-defi-framework/api/common_structures": [ + { + "text": "Komodo DeFi SDK Common Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "The objects are in the request or response of multiple Komodo DeFi SDK methods have been grouped into the following sections:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Activation", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Activation", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Swaps", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Swaps", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Lightning Network", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Lightning Network", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Non-fungible Tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Non-fungible Tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Wallet Operations", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Wallet Operations", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "Structures which are used in more than one section are listed below:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "komodo-de-fi-sdk-common-structures" + }, + { + "text": "AddressFormat", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| format | string (enum) | address format to which the input address should be converted. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "mixedcase", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for ETH/ERC20 coins; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "cashaddress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "standard", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for UTXO coins; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "contract", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for QTUM/QRC20 |\n| network | string (enum) | Optional, only used for UTXO coins. Network prefix for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "cashaddress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " format. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "bitcoincash", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for BCH mainnet; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "bchtest", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for BCH testnet; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "bchreg", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": " for BCH regtest |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-format" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example" + }, + { + "text": "AddressInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " object includes the following items for a given address:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| balances | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "balanceInfos", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " object. Not included in responses where ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " |\n| derivation_method | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "DerivationMethod", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " object |\n| pubkey | string | The public key associated with the seed used to launch Komodo DeFi Framework |\n| tickers | array | A list of tokens which were successfully activated. Only included in responses where ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "balanceInfos", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "DerivationMethod", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "address-info" + }, + { + "text": "Example with balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-with-balances" + }, + { + "text": "Example without balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-without-balances" + }, + { + "text": "BalanceInfos", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "balance-infos" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "balance-infos" + }, + { + "text": "balanceInfos", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "balance-infos" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "balance-infos" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| spendable | string (numeric) | The available amount of a coin or token which is ready to be traded or withdrawn. |\n| unspendable | string (numeric) | The amount of a coin or token which is awaiting confirmation on the block chain for an incoming or outgoing transaction. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "balance-infos" + }, + { + "text": "DerivationMethod", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "DerivationMethod", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ------------------------------------------------------------------------------- |\n| type | string | Defines how keypairs will be generated. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "Iguana", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "HDWallet", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "Using the same seed or private key to generate keypairs using different derivation methods will result in a different address and private key for each method.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "Where the value indicates:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "Iguana", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": ": The coin or token is was activated using Iguana derivation (default).", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "HDWallet", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": ": The coin or token is was activated using a Heirarchical Deterministic (HD) Wallet derivation path.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "derivation-method" + }, + { + "text": "EventStreamConfig", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "EventStreamConfig", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " object defines which events will be streamed to the client:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------ | ------ | -------------------------------------------------------------------------------------- |\n| access_control_allow_origin | string | Defines CORS whitelist. Use \"*\" to allow fromi any origin. |\n| active_events | object | Events to be streamed to the client, along with configuration defineing frequency etc. |\n| worker_path | string | WASM only. Path to a custom ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "worker.js", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " file. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "Active events are defined as follows:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "NETWORK: Network status changes. Requires ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "stream_interval_seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " configuration.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "HEARTBEAT: Allows clients to easily determine whether channels are functioning. Requires ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "stream_interval_seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " configuration.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "COIN_BALANCE: Balance changes. Does not require ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "stream_interval_seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " configuration, as the event is triggered by the balance change.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "COIN_BALANCE", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": " event may not be available for all coins or tokens.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "An example of the event stream output can then be viewed in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/examples/sse/index.html", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/examples/sse/index.html", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "event-stream-config" + }, + { + "text": "NumericFormatsValue", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": " returns a price or amount in three different formats: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "fraction", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "rational", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "decimal", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | -------------- | ---------------------------------------------------------------------------------------------------- |\n| decimal | numeric string | A decimal number as a string. |\n| rational | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": " object. |\n| fraction | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "numeric-formats-value" + }, + { + "text": "FeeInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " response object includes the following items for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "withdraw (v2)", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " requests:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "withdraw (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | Type of transaction fee; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "EthGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "Qrc20Gas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "CosmosGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " |\n| amount | string (numeric) | Fee amount in coin units, used only when type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " (fixed amount not depending on tx size) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " (amount per Kbyte) |\n| gas_price | string (numeric) | Used only when fee type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "Qrc20Gas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "EthGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "; sets the gas price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "gwei", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " units. |\n| gas_price | number (double) | Used only when fee type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "CosmosGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "; sets the gas price. |\n| gas | number (integer) | Used only when fee type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "EthGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "; sets the gas limit for transaction |\n| gas_limit | number (integer) | Used only when fee type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "Qrc20Gas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "CosmosGas", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "; sets the gas limit for transaction |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fee-info" + }, + { + "text": "Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "examples" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | the fee is paid from the user's balance of this coin. This coin name may differ from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": " coins. For example, ERC20 fees are paid by ETH (gas) |\n| amount | string (numeric) | fee amount (in decimal representation) |\n| amount_rat | rational | fee amount (in rational representation) |\n| amount_fraction | fraction | fee amount (in fraction representation) |\n| amount_fraction | fraction | fee amount (in fraction representation) |\n| paid_from_trading_vol | bool | whether the fee is paid from trading volume and not use actual ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": " balance |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "extended-fee-info" + }, + { + "text": "TotalFeeInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | the fee is paid from the user's balance of this coin. This coin name may differ from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": " coins. For example, ERC20 fees are paid by ETH (gas) |\n| amount | string (numeric) | fee amount (in decimal representation) |\n| amount_rat | rational | fee amount (in rational representation) |\n| amount_fraction | fraction | fee amount (in fraction representation) |\n| required_balance | string (numeric) | the required ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": " balance to pay the fee |\n| required_balance_rat | rational | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "required_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": " in rational representation |\n| required_balance_fraction | fraction | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "required_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": " in fraction representation |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "total-fee-info" + }, + { + "text": "FractionalValue", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": " object includes a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "numerator and denominator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": " values for a given price or amount:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "numerator and denominator", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ---------------- | ---------------------------------------- |\n| numer | string (numeric) | The numerator of the fractional value. |\n| denom | string (numeric) | The denominator of the fractional value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "fractional-value" + }, + { + "text": "Pagination", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "pagination" + }, + { + "text": "For requests which return many results, pagination offsets may be applied. ** Use either value, not both. **", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "pagination" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ------- | ------------------------------------------------------- |\n| PageNumber | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "pagination" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "pagination" + }, + { + "text": ". Offset for paginated results |\n| FromId | integer | Optional. Ignores any results prior to this UUID |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "pagination" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-2" + }, + { + "text": "RationalValue", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "The Komodo DeFi SDK now offers the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "num-rational crate", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " feature which allows for higher precision numeric values to represent order volumes and prices in a unique format as explained below:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "num-rational crate", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "In the above unique format, the first item ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "[1,[0,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " is the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "numerator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " and the second item ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "[1,[1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " is the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "denominator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "numerator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "denominator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " are BigInteger numbers represented as a sign and a uint32 array (where numbers are 32-bit parts of big integer in little-endian order).", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "[1,[0,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " represents ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "+0000000000000000000000000000000010000000000000000000000000000000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " = ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "4294967296", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "[-1,[1,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " represents ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "-1000000000000000000000000000000010000000000000000000000000000000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": " = ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "-4294967297", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "rational-value" + }, + { + "text": "SyncStatus", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| state | string | current state of sync; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "NotEnabled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "NotStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "Finished", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": " |\n| additional_info | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "SyncStatusExtended", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": " object. Additional info that helps to track the progress; present for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": " states only. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "SyncStatusExtended", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status" + }, + { + "text": "SyncStatusExtended", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------ |\n| blocks_left | number | present for ETH/ERC20 coins only; displays the number of blocks left to be processed for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": " state |\n| transactions_left | number | present for UTXO coins only; displays the number of transactions left to be processed for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": " state |\n| code | number | displays the error code for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": " state |\n| message | number | displays the error message for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": " state |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "sync-status-extended" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-3" + }, + { + "text": "WithdrawFee", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "WithdrawFee", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " object varies depending on the coin or token type. Refer to the examples to view the object structure for each type.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | -------------- | --------------------------------------------------------------------------------- |\n| type | string | The fee type. Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Utxo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Tendermint", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Qrc20", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Eth", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": ". |\n| amount | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Utxo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Tendermint", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. The fee amount. |\n| coin | string | The coin which will be used to pay the transaction fee. |\n| gas | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Eth", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. The amount of gas to be used for the transaction. |\n| gas_price | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Eth", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Qrc20", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. Price per unit of gas to be used for the transaction. |\n| gas_limit | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Tendermint", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Qrc20", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. Maximum gas to be used for the transaction. |\n| miner_fee | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Tendermint", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. Fee to mine the transaction. |\n| total_fee | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Eth", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. Gas price multiplied by gas amount. |\n| total_gas_fee | numeric string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Qrc20", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": " type only. Gas price multiplied by gas amount. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "withdraw-fee" + }, + { + "text": "Example of Eth type", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-of-eth-type" + }, + { + "text": "Example of Qrc20 type", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-of-qrc20-type" + }, + { + "text": "Example of Tendermint type", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-of-tendermint-type" + }, + { + "text": "Example of Utxo type", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures", + "closestElementReference": "example-of-utxo-type" + } + ], + "komodo-defi-framework/api/common_structures/lightning": [ + { + "text": "Lightning Network Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-network-structures" + }, + { + "text": "ConfirmationTargets", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "This object represents the number of blocks required for an on-chain lightning-related transaction to be confirmed.\nIt is used for estimating the transaction fee rate (", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ") for different transaction types in the context of permissionless transactions performed by the node. Different target types are ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "background", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "normal", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| background | integer | Used for transactions that can tolerate slower confirmation times when the transaction fee rate decreases. These transactions are not time-sensitive and can afford to wait longer for confirmation. The recommended range is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "12", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": " blocks to ensure a low ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |\n| normal | integer | Used for transactions that we want to confirm promptly, without significant delay (e.g, transactions for opening payment channels). These transactions are important but not critical. Suggested value is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "6", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": " blocks to ensure a moderate ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |\n| high_priority | integer | Used for transactions that require quick confirmation to prevent potential loss of funds (e.g. redeeming a Hashed Time Lock Contract (HTLC) on the blockchain before it times out). These transactions are time-critical and must be confirmed promptly to ensure the security of funds. Recommended value for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": " is 1-2 blocks to ensure a high ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "Using the recommended values in the above table with a coin that has a block time of 10 minutes, the equivalent time in minutes is:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "background", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 120 minutes to 1440 minutes (2 hours to 1 day).", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "normal", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 60 minutes (one hour).", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 10 to 20 minutes.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "confirmation-targets" + }, + { + "text": "CounterpartyChannelConfig", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| allow_outbound_0conf | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". When setting an outbound channel, it can be used straight away ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "without waiting", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": " for any on-chain confirmations. |\n| force_announced_channel_preference | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Set to force an incoming channel to match our announced channel preference in ChannelOptions announced_channel. |\n| outbound_channels_confirmations | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Confirmations we will wait for before considering an inbound channel locked in. |\n| our_locktime_limit | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "2016", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Set to the amount of blocks we're willing to wait to claim money back to us. |\n| min_funding_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Minimum allowed satoshis when an inbound channel is funded. |\n| max_funding_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "16777215", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Maximum allowed satoshis when an inbound channel is funded. |\n| max_htlc_minimum_msat | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "18446744073709551615", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the minimum size of HTLCs we can send to them. This allows us to limit the maximum minimum-size they can require. |\n| min_max_htlc_value_in_flight_msat | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the maximum value of pending HTLCs to them at any given time to limit their funds exposure to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". This allows us to set a minimum such value. |\n| max_channel_reserve_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "18446744073709551615", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node will require us to keep a certain amount in direct payment to ourselves at all time, ensuring that we are able to be punished if we broadcast an old state. This allows us to limit the amount which we will have to keep to ourselves (and cannot use for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "). |\n| min_max_accepted_htlcs | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the maximum number of pending HTLCs to them at any given time. This allows us to set a minimum such value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "without waiting", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "LightningActivationParams", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | string | The name of the node that will be used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": " |\n| listening port | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "9735", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". The port that this node listens for incoming connections on. |\n| color | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "2b6680", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". A hexidecimal color string which will be used in network graphs on ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": " |\n| payment_retries | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "5", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". Number of times a payment will be retried if it fails. |\n| backup_path | string | Optional. The backup path for channel backups, preferably on an external drive. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "LightningChannelAmount", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | -------------------------------------------------------------------------------------- |\n| type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Exact", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": " for a specific amount or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Max", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": " for whole balance. |\n| value | object | Only required if type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Exact", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": ". The amount in BTC you want to open the channel with. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "LightningChannelConfig", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "The values in this object are only used if the channel is being opened by the user. If the channel is being opened by the counterparty, the values in this object are ignored.\nIf not specified when using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "open_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "update_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " methods, the values in this object will default to the values set in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " configuration file.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "update_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| inbound_channels_confirmations | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "6", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Should be set in coins file, and applies to all channels. Confirmations we will wait for before considering an inbound channel locked in. |\n| max_inbound_in_flight_htlc_percent | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Should be set in coins file, and applies to all channels. Sets the percentage of the channel value we will cap the total value of outstanding inbound HTLCs to. |\n| our_htlc_minimum_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". The smallest value HTLC we will accept to process. The channel gets closed any time our counterparty misbehaves by sending us an HTLC with a value smaller than this. |\n| announced_channel | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Set to announce the channel publicly and notify all nodes that they can route via this channel. GUIs and wallet apps should be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". |\n| commit_upfront_shutdown_pubkey | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". When ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (and the counterparty agrees), the user must use the same key for cooperative closing. This prevents a user from changing the destination address in a cooperative close, which slightly increases security (however, this option is not required if the counterparty does not support it and a channel can be accepted regardless). ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "Note that the key for forced closing is always fixed when opening a channel and is different from shutdown_pubkey.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " |\n| counterparty_locktime | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". The number of blocks we require our counterparty to wait to claim their money on chainif they broadcast a revoked transaction. We have to be online at least once during this time to punish our counterparty for broadcasting a revoked transaction. We have to account also for the time to broadcast and confirm our transaction, possibly with time in between to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "RBF (Replace-By-Fee)", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " the spending transaction. |\n| negotiate_scid_privacy | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ", we attempt to negotiate the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "scid_privacy", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (referred to as ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "scid_alias", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "BOLTs", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ") option for outbound private channels. This provides better privacy by not including our real on-chain channel UTXO in each invoice and requiring that our counterparty only relay HTLCs to us using the channel's SCID alias. |\n| their_channel_reserve_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "10000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " or 1% of channel value. The minimum balance that the other node has to maintain on their side, at all times. This ensures that if our counterparty broadcasts a revoked state, we can punish them by claiming at least this value on chain. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "RBF (Replace-By-Fee)", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "BOLTs", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "For GUIs and wallet apps, it is recommended to set ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "announced_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (the default value), as the node is not expected to be reliably online.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "LightningChannelOptions", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| proportional_fee_in_millionths_sats | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Amount (in milli-satoshi) charged for payments forwarded outbound over the channel, in excess of proportional_fee_in_millionths_sats. |\n| base_fee_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "1000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Amount (in milli-satoshi) charged for payments forwarded outbound over the channel, in excess of proportional_fee_in_millionths_sats. |\n| cltv_expiry_delta | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "72", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Blocks until ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "CheckLockTimeVerify (CLTV)", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": " expiry. |\n| max_dust_htlc_exposure_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "5000000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Limit our total exposure to in-flight ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": " which are burned to fees as they are too small to claim on-chain. |\n| force_close_avoidance_max_fee_sats | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "1000", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". The additional fee we're willing to pay to avoid waiting for the counterparty's locktime to reclaim funds. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "CheckLockTimeVerify (CLTV)", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "LightningClosedChannelsFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| channel_id | string | Optional. Unique string identifying a channel by its ID. |\n| counterparty_node_id | string | Optional. A hexidecimal string identifying a counterparty node. |\n| funding_tx | string | Optional. A transaction ID which added funds. |\n| from_funding_value | integer | Optional. The minimum value of channel funding in satoshis. |\n| to_funding_value | integer | Optional. The maximum value of channel funding in satoshis. |\n| channel_type | string | Optional. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Inbound", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Outbound", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": ". |\n| closing_tx | integer | Optional. A transaction ID which closed the channel. |\n| closure_reason | integer | Optional. The reason a channel was closed. |\n| claiming_tx | integer | Optional. The ID of the transaction that returned the remaining outbound funds when the channel was closed to our on-chain address. |\n| from_claimed_balance | integer | Optional. The minimum balance of channel funds claimed in satoshis. |\n| to_claimed_balance | integer | Optional. The maximum balance of channel funds claimed in satoshis. |\n| channel_visibility | integer | Optional. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Public", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Private", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Response may change to be more consistent in future.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206446309", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206446309", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "LightningOpenChannelsFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| channel_id | string | Optional. Unique string identifying a channel by its ID. |\n| counterparty_node_id | string | Optional. A hexidecimal string identifying a counterparty node. |\n| funding_tx | string | Optional. A transaction ID which added funds. |\n| from_funding_value_sats | integer | Optional. The minimum value of channel funding in satoshis. |\n| to_funding_value_sats | integer | Optional. The maximum value of channel funding in satoshis. |\n| is_outbound | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", limits the response to outbound channels only. |\n| from_balance_msat | integer | Optional. The minimum channel balance in millisatoshis. |\n| to_balance_msat | integer | Optional. The maximum channel balance in millisatoshis. |\n| from_outbound_capacity_msat | integer | Optional. The minimum outbound capacity of the channel balance in millisatoshis. |\n| to_outbound_capacity_msat | integer | Optional. The maximum outbound capacity of the channel balance in millisatoshis. |\n| from_inbound_capacity_msat | integer | Optional. The minimum inbound capacity of the channel balance in millisatoshis. |\n| to_inbound_capacity_msat | integer | Optional. The maximum inbound capacity of the channel balance in millisatoshis. |\n| confirmed | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels with channel opening transactions that passed the number of confirmations required for the channel to be usable will be returned. |\n| is_usable | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels that are confirmed and the counterparty is online, meaning that these channels can be used for payments will be returned. |\n| is_public | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels that our node announces to the lightning network, these channels are visible on lightning explorers will be returned. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "LightningPayment", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | The payment type. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". |\n| invoice | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". An identifying string which represents the invoice. |\n| destination | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". A ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "node_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " (which is also the node address in lightning context). Not to be confused with an onchain address. |\n| amount_in_msat | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Amount to be paid, in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " (A thousandth of a satoshi; the same as 0.00000000001 bitcoin). |\n| expiry | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "3600", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Seconds until the payment expires. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment" + }, + { + "text": "LightningPaymentFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------- |\n| payment_type | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "LightningPaymentType", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " object. |\n| description | string | Optional. A note to indicate the purpose of the invoice. |\n| status | string | Optional. Accepted values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "pending", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "succeeded", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "failed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ". |\n| from_amount_msat | integer | Optional. Minimum amount sent in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| to_amount_msat | integer | Optional. Maximum amount sent in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| from_fee_paid_msat | integer | Optional. Minimum transaction fee paid in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| to_fee_paid_msat | integer | Optional. Maximum transaction fee paid in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| from_timestamp | string | Optional. Minimum timestamp in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " of payment results to return. |\n| to_timestamp | string | Optional. Maximum timestamp in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " of payment results to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "LightningPaymentType", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------ | ----------------------------------------------------------------------------------- |\n| type | object | Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Outbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Inbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": ". |\n| destination | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Outbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": ". A pubkey which will receive the payment. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Response may change in future.\nSee ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206176530", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206176530", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/lightning", + "closestElementReference": "lightning-payment-type" + } + ], + "komodo-defi-framework/api/common_structures/nfts": [ + { + "text": "Non-Fungible Token Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "non-fungible-token-structures" + }, + { + "text": "The following structures are used in the Komodo DeFi SDK for non-fungible tokens (NFTs).", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "non-fungible-token-structures" + }, + { + "text": "NftInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "NftInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": " object includes the following items for a given token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | string | The amount of this NFT the user owns (used by ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "). |\n| block_number_minted | integer | The block height when the NFT was minted. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| block_number | integer | The block height when the amount or owner changed. |\n| chain | string | Chain name. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| name | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". An NFT collection name. |\n| contract_type | string | The type of NFT contract standard. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| last_token_uri_sync | string | When the token_uri was last updated. |\n| last_metadata_sync | string | When the metadata was last updated. |\n| metadata | string | The metadata of the token. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| minter_address | string | Minter address. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| owner_of | string | The wallet address of the owner of the NFT. |\n| possible_spam | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", the contract address has ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "been identified", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": " as associated with spam or suspicious activities. |\n| possible_phishing | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ", the token has been identified as associated with phishing, as at least one of domain fields is found in database with phishing domains. |\n| symbol | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". The symbol of the NFT contract. |\n| token_address | string | The address of the NFT contract. |\n| token_id | string | The token ID of the NFT. |\n| token_hash | string | The token hash. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| token_uri | string | The URI to the metadata of the token. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| token_domain | string | Token domain. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": ". |\n| uri_meta | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "NftMetadata", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "been identified", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "NftMetadata", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-info" + }, + { + "text": "NftFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "NftFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| exclude_spam | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": ", only tokens which have param ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "possible_spam:false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": " are included in the response. |\n| exclude_phishing | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": ", only tokens which have param ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "possible_phishing:false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": " are included in the response. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-filter" + }, + { + "text": "NftTransfer", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "NftTransfer", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " object includes the following items for each token transaction:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | string | Amount of tokens transferred. |\n| block_hash | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Hash of block in which transfer occurred. |\n| block_number | integer | Height of block in which transfer occurred. |\n| block_timestamp | integer | Block time in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| chain | string | Chain name. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| token_uri | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". The URI to the metadata of the token. |\n| token_domain | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Extracted domain from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "token_uri", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", if valid. |\n| collection_name | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Name of collection which token belongs to. |\n| image_url | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". The URI to the token image. |\n| image_domain | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Extracted domain from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "image_url", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", if valid. |\n| token_name | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Name of the token. |\n| contract_type | string | Contract type. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| token_address | string | Address of token transferred. |\n| token_id | string | Token ID. |\n| possible_spam | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", the contract address has ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "been identified", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " as associated with spam or suspicious activities. |\n| possible_phishing | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ", the token has been identified as associated with phishing, as at least one of domain fields is found in database with phishing domains. |\n| transaction_hash | string | Transaction ID of the transfer. |\n| transaction_index | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Transaction index of the transfer. |\n| log_index | string | Log index of the transfer. |\n| value | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Tranfer value. |\n| transaction_type | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". Transaction type. Possible values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "Single", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| from_address | string | Address of previous owner which sent the token(s). |\n| to_address | string | Address of new owner which received the token(s). |\n| status | string | Transfer status. Will be either ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "Send", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "Receive", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". When the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "from_address", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "to_address", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " are the same (i.e. sending to yourself), this value will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "Receive", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| verified | integer | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". A deprecated field which will be removed in future. |\n| operator | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": ". |\n| fee_details | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " object. |\n| confirmations | integer | The count of blocks produced since this transaction was confirmed. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "been identified", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "FeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "verified", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " has no description. Related to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "https://cointelegraph.com/news/nft-whale-pranksy-pranked-by-fake-banksy-for-97-7-eth", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "? Who verifies it? I can see there are ways to verify on opensea etc, I assume Moralis incormoprates this.\nWhat are the other possible values for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "transaction_type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "?\nWhat is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "operator", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "?\nWhat does ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "verified", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": " mean?", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "https://cointelegraph.com/news/nft-whale-pranksy-pranked-by-fake-banksy-for-97-7-eth", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer" + }, + { + "text": "NftTransferFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "NftTransferFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": " object includes the following items for a transfer of given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| receive | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", only transfers where user received NFTs are included in the response. |\n| send | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", only transfers where user sent NFTs are included in the response. |\n| from_date | integer | Optional. A timestamp in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", filter includes transfers from this date onwards (inclusive). |\n| to_date | integer | Optional. A timestamp in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", filter includes transfers up to this date (inclusive). |\n| exclude_spam | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", only transfers which have param ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "possible_spam:false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": " are included in the response. |\n| exclude_phishing | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": ", only transfers which have param ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "possible_phishing:false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": " are included in the response. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-transfer-filter" + }, + { + "text": "NftMetadata", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "NftMetadata", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| image | string | Optional. Direct URL to the NFT's image. |\n| image_url | string | Optional. Optional. Url to the NFT's image. Derived from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "image", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "image_url", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": " fields to prioritize the non-null value. Can be null if neither is provided. |\n| image_domain | string | Optional. Extracted domain from the 'image_url', if valid. |\n| name | string | Optional. Name of the token. |\n| description | string | Optional. Description of the token. |\n| attributes | object or array of objects | Optional. The values within this parameter will vary, and are set by the creator. Often used to store traits. |\n| animation_url | string | Optional. Url to an animation to be displayed instead of a static image. |\n| animation_domain | string | Optional. Extracted domain from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "animation_url", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": ", if valid. |\n| external_url | string | Optional. URL to the external source related to the token. |\n| external_domain | string | Optional. Extracted domain from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "external_url", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": ", if valid. |\n| image_details | object | Optional. JSON containing additional details or attributes of the image. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "nft-metadata" + }, + { + "text": "WithdrawNftData", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "WithdrawNftData", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " object is used for withdrawals of NFTs on ERC721 and ERC1155 contracts. It includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| chain | string | The token chain. Chain must be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "activated", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " first. |\n| to | string | Destination address to withdraw the token to. |\n| token_address | string | Token address. |\n| token_id | string | Token ID. |\n| fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "WithdrawFee", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " object. May be missing for older transfers. |\n| amount | string | Optional, ERC1155 only. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ". Amount of NFTs to withdraw. Ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " is true. |\n| max | boolean | Optional, ERC1155 only. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ", amount parameter will be ignored and all NFTs with this ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "token_id", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " will be sent. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "activated", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "WithdrawFee", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "When the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " parameter in a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " request is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_erc721", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ", it means the NFT is absolutely unique,\nand it has only 1 owner and the owner can own only 1 NFT with this ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "token_id", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "\nin its ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "token_address", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " (also referred to as contract address).\nWhen the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " parameter in a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " request is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_erc1155", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ", it means that it is possible for more\nthan 1 user to own one or more of the same NFT (with an identical ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "token_id", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ").\nDue to this difference, the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "amount", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " fields are only used the when\nthe ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": " value is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_erc1155", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + }, + { + "text": "withdraw_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/nfts", + "closestElementReference": "withdraw-nft-data" + } + ], + "komodo-defi-framework/api/common_structures/orders": [ + { + "text": "Order Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-structures" + }, + { + "text": "CancelBy", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |\n| Type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "All", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " to cancel all orders; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Pair", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " to cancel all orders for specific coin pairs; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " to cancel all orders for a specific coin |\n| data | object | additional data the cancel condition; present with ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Pair", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " types |\n| data.base | string | base coin of the pair; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Pair", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " type only |\n| data.rel | string | rel coin of the pair; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Pair", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " type only |\n| data.ticker | string | order is cancelled if it uses ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " as base or rel; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "Coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": " type only |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "To cancel all orders for a specific coin:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "To cancel all orders for a specific pair:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "cancel-by" + }, + { + "text": "ConfSettings", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base_confs | number | Number of required confirmations on the base coin's blockchain for a transaction to complete an atomic swap event. |\n| base_nota | bool | Whether ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "dPoW notarization", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": " is required on the base coin's blockchain for a transaction to complete an atomic swap event. |\n| rel_confs | number | Number of required confirmations on the rel coin's blockchain for a transaction to complete an atomic swap event. |\n| rel_nota | bool | Whether ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "dPoW notarization", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": " is required on the rel coin's blockchain for a transaction to complete an atomic swap event. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "dPoW notarization", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "dPoW notarization", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "conf-settings" + }, + { + "text": "RequestBy", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "| Structure | Type | Description | |\n| --------- | ------- | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type | integer | Defines whether requesting by ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": " or by ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "number", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": ". | |\n| value | numeric | string | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": ", the amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": " (defined in the parent object) the user is willing to buy or sell. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "number", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": ", the number of best price trades to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "Filter response to return the best trades for up to 20 of the coin defined in the parent object:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "Filter response to return the 10 best priced trades:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "request-by" + }, + { + "text": "OrderAddress", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ------ | -------------------------------------------------------------------- |\n| address_type | string | Generally ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": "Transparent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": ", but may be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": "Shielded", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": " for supporting coins. |\n| address_data | string | The actual address text for sending and receiving funds. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-address" + }, + { + "text": "OrderType", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Type | string | There are two types from which to choose: ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "FillOrKill", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": ". The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " order is automatically converted to a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " order if the order is not matched in 30 seconds, and this ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " order stays in the orderbook until explicitly cancelled. On the other hand, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "FillOrKill", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " order is cancelled if it is not matched within 30 seconds. The default type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " orders will remain on the orderbook until they are exhausted or explicitly cancelled.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "FillOrKill", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": " orders will be automatically cancelled if they are not matched within 60 seconds.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-type" + }, + { + "text": "OrderStatusData", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base | string | base currency |\n| rel | string | rel currency |\n| price | number | order price as decimal number |\n| price_rat | rational number | order price as rational number |\n| max_base_vol | number | Maximum trade volume |\n| max_base_vol_rat | rational number | Maximum trade volume as rational number |\n| min_base_vol | number | Minimum trade volume |\n| min_base_vol_rat | rational number | Minimum trade volume as rational number |\n| created_at | number | Timestamp of order creation |\n| updated_at | number | Timestamp of last order update |\n| matches | list | UUIDS of matching orders |\n| started_swaps | list | UUIDS of swaps started |\n| uuid | string | UUID of this order |\n| conf_settings | object | Confirmation / Notarisation settings for order |\n| base_orderbook_ticker | string | The ticker of the base currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " is configured for the base currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " file. If not defined, will return a null value. |\n| rel_orderbook_ticker | string | The ticker of the rel currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " is configured for the rel currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " file. If not defined, will return a null value. |\n| cancellable | boolean | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " if order is in a state which it can be cancelled. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " if not (e.g. swap is in progress) |\n| cancellation_reason | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "Cancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " indicates order was withdrawn by user. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "Fulfilled", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " indicates order was swapped successfully. ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "TimedOut", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " indicates a taker order with type ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "FillOrKill", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " expired before matching. |\n| available_amount | string | Funds available for order to be matched against, taking into account current spendable balance and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "max_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-status-data" + }, + { + "text": "OrderDataV1", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "Compare and confirm the differences between this object in v1 and v2 methods.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin |\n| address | string | The address offering the trade |\n| price | string (decimal) | The price the user is willing to buy or sell per one unit of the coin from request |\n| price_rat | rational | The price represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| price_fraction | object | The price represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| maxvolume | string (decimal) | The maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " the offer provider is willing to sell |\n| max_volume_rat | rational | The max volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| max_volume_fraction | object | The max volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| min_volume | string (decimal) | The minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin the offer provider is willing to sell |\n| min_volume_rat | rational | The min volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| min_volume_fraction | object | The min volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| pubkey | string | The pubkey of the offer provider |\n| age | number | The age of the offer (in seconds) |\n| zcredits | number | The zeroconf deposit amount (deprecated) |\n| netid | number | The id of the network on which the request is made (default is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": ") |\n| uuid | string | The uuid of order |\n| is_mine | bool | Whether the order is placed by me |\n| base_max_volume | string (decimal) | The maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin the offer provider is willing to buy or sell |\n| base_max_volume_rat | rational | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base_max_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| base_max_volume_fraction | object | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base_max_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| base_min_volume | string (decimal) | The minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin the offer provider is willing to buy or sell |\n| base_min_volume_rat | rational | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base_min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| base_min_volume_fraction | object | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base_min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| base_confs | number | The confirmations settings of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin set by the offer provider |\n| base_nota | bool | The notarisation settings of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin set by the offer provider |\n| rel_max_volume | string (decimal) | The maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin the offer provider is willing to buy or sell |\n| rel_max_volume_rat | rational | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel_max_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " max volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| rel_max_volume_fraction | object | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel_max_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " max volume represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| rel_min_volume | string (decimal) | The minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin the offer provider is willing to buy or sell |\n| rel_min_volume_rat | rational | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel_min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| rel_min_volume_fraction | object | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel_min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " object. |\n| rel_confs | number | The confirmations settings of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin set by the offer provider |\n| rel_nota | bool | The notarisation settings of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " coin set by the offer provider |\n| original_tickers | list (string) | Tickers included in response when ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " is configured for the queried coin in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": " file |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v1" + }, + { + "text": "OrderDataV2", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "Compare and confirm the differences between this object in v1 and v2 methods.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin |\n| address | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "OrderAddress", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object. |\n| price | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the coin price. |\n| base_min_volume | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the minimum base volume. |\n| base_max_volume | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the maximum base volume. |\n| base_max_volume_aggr | object | Orderbook (v2) only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the maximum aggregated base amount at the specified price. The sum of max base volumes of the current order and all orders with a worse price. |\n| rel_min_volume | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the minimum rel volume. |\n| rel_max_volume | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the maximum rel volume. |\n| rel_max_volume_aggr | object | Orderbook (v2) only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object representing the maximum aggregated rel amount at the specified price. The sum of max rel volumes of the current order and all orders with a worse price. |\n| pubkey | string | The pubkey of the offer provider |\n| uuid | string | The uuid of order |\n| is_mine | bool | Whether the order is placed by me |\n| conf_settings | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "ConfSettings", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "OrderAddress", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "ConfSettings", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-data-v2" + }, + { + "text": "OrderSummaryData", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ---------------- | --------------------------------------------------------------------------------- |\n| uuid | string | uuid of the order |\n| order_type | string | Type of the order; \"Maker\" or \"Taker\" |\n| base | string | base coin of the order |\n| rel | string | rel coin of the order |\n| price | number (decimal) | price of the order |\n| volume | number (decimal) | volume of the order |\n| created_at | number | unix timestamp in milliseconds, indicating the order creation time |\n| last_updated | number | unix timestamp in milliseconds, indicating the time the order was last updated |\n| Was_taker | number | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": " if the order was a \"Taker\" order that got converted to \"Maker\", ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": " otherwise |\n| status | string | status of the Order |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "order-summary-data" + }, + { + "text": "MatchBy", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| Type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Any", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " to match with any other order; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Orders", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " to select specific uuids; ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " to select specific nodes; default is ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Any", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " |\n| data | array of strings | A list of order uuids (to match for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Orders", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " type) or pubkeys of nodes (to match for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": " type) |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + }, + { + "text": "Match by order uuids:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/orders", + "closestElementReference": "match-by" + } + ], + "komodo-defi-framework/api/common_structures/swaps": [ + { + "text": "Swap Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-structures" + }, + { + "text": "SwapEvent", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "There are a variety if swap events which may occur during a trade. See ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Maker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Taker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": " for more info.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Maker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Taker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | See ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Maker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Taker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": " for more info. |\n| data | varies | The data field may contain contextual information (e.g. txids) releated to a swap event. In some cases, it will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Maker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Taker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-event" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "example" + }, + { + "text": "SwapEvents", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "For each step of a trade, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "SwapEvent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": " will be created, alongside the timestamp of the event. See ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "Maker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "Taker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": " for more info.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "Maker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "Taker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | ---------------------------------------------------------------------------------------------- |\n| timestamp | integer | Timestamp for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "SwapEvent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": " in UNIX format. |\n| event | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "SwapEvent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "SwapEvent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-events" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "example-2" + }, + { + "text": "SwapStatus", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "Each swap status will be nested under its associated UUID.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "We should add a \"maker\" resonse example also. Unsure if ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " on maker side is swap or order uuid in response.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "Maker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "Taker", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": ". Indicates if the user created the order (maker), or matched with an existing order (taker). |\n| uuid | string | A unique identifier for the swap. |\n| events | list | A list of swap events. The structure of each event varies depending on its type, as detailed in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "SwapEvents", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " section. |\n| maker_coin | string | The coin being sent by the maker and received by the taker. |\n| taker_coin | string | The coin being sent by the taker and received by the maker. |\n| maker_amount | numeric string | The amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "maker_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " being traded. |\n| taker_amount | numeric string | The amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "taker_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " being traded. |\n| gui | string | An identifier for the GUI used to initiate the swap, as defined in a user's MM2.json file. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " if not defined. |\n| mm_version | string | The release version and/or commit hash of the Komodo DeFi SDK used to initiate the swap. |\n| success_events | list | A list of possible swap event types for a successful swap, for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "makers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "takers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": ". |\n| error_events | list | A list of possible swap event types which may appear in a failed swap, for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "makers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "takers", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "SwapEvents", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "makers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "takers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "makers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "takers", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "swap-status" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps", + "closestElementReference": "example-3" + } + ], + "komodo-defi-framework/api/common_structures/swaps/maker_events": [ + { + "text": "Maker Swap Events", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-swap-events" + }, + { + "text": "Needs update for watchtower events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-swap-events" + }, + { + "text": "Maker Success Events", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Click on the Events below to view thier structure:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Started", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Started", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Negotiated", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Negotiated", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerFeeValidated", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerFeeValidated", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "MakerPaymentSent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "MakerPaymentSent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentReceived", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentReceived", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentWaitConfirmStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentWaitConfirmStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentValidatedAndConfirmed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentValidatedAndConfirmed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpendConfirmStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpendConfirmStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpendConfirmed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "TakerPaymentSpendConfirmed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Finished", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Finished", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-success-events" + }, + { + "text": "Maker Error Events", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "Click on the Events below to view thier structure:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "StartFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "StartFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "NegotiateFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "NegotiateFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerFeeValidateFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerFeeValidateFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentTransactionFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentTransactionFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentDataSendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentDataSendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentValidateFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentValidateFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentSpendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentSpendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentSpendConfirmFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "TakerPaymentSpendConfirmFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentWaitRefundStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentWaitRefundStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentRefunded", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentRefunded", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentRefundFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "MakerPaymentRefundFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-error-events" + }, + { + "text": "Started", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "Started", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": " event indicates that mandatory pre-checks passed, such as \"available balance,\" and that the swap started successfully.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "The swap goes to the negotiation stage after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------------ | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| taker_coin | string | the ticker of the taker coin |\n| maker_coin | string | the ticker of the maker coin |\n| taker | string (hexadecimal) | the p2p ID of taker node |\n| secret | string (hexadecimal) | a random secret, the hash of which is used to lock atomic-swap payments |\n| secret_hash | string (hexadecimal) | the hash of the swap secret |\n| my_persistent_pub | string (hexadecimal) | a persistent secp256k1 public key of maker node |\n| lock_duration | number (integer) | the lock duration of swap payments in seconds. The sender can refund the transaction when the lock duration is passed. The taker payment is locked for the lock duration. The maker payment is locked for lock duration * 2 |\n| maker_amount | string (numeric) | the amount of coins to be swapped by maker |\n| taker_amount | string (numeric) | the amount of coins to be swapped by taker |\n| maker_payment_confirmations | number (integer) | the required number of blockchain confirmations for maker payment |\n| maker_payment_requires_nota | bool | whether dPoW notarization is required for maker payment; can be null; available since ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "beta-2.0.1738", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": " |\n| taker_payment_confirmations | number (integer) | the required number of blockchain confirmations for taker payment |\n| taker_payment_requires_nota | bool | whether dPoW notarization is required for taker payment; can be null; available since ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "beta-2.0.1738", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": " |\n| maker_payment_lock | number (UTC timestamp in seconds) | the maker payment is locked until this timestamp |\n| uuid | string | the swap uuid |\n| started_at | number (UTC timestamp in seconds) | the timestamp at the start of the swap |\n| maker_coin_start_block | number (integer) | the maker coin block number at the start of the swap |\n| taker_coin_start_block | number (integer) | the taker coin block number at the start of the swap |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "started" + }, + { + "text": "StartFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": "StartFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": " event indicates that some of the pre-checks did not pass, and therefore the swap did not start.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "start-failed" + }, + { + "text": "Negotiated", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": "Negotiated", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": " event indicates that maker has received and validated swap negotiation data from taker.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": "Maker starts waiting for taker to send the dex fee after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------ | --------------------------------- | ------------------------------------------------ |\n| taker_payment_locktime | number (UTC timestamp in seconds) | the taker payment is locked until this timestamp |\n| taker_pubkey | string (hexadecimal) | a persistent secp256k1 public key of taker node |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiated" + }, + { + "text": "NegotiateFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "NegotiateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": " event indicates that taker negotiation data was not received or did not pass validation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "TakerFeeValidated", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": "TakerFeeValidated", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": " event indicates that maker received and validated dex fee data from taker.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": "Maker sends their payment after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validated" + }, + { + "text": "TakerFeeValidateFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": "TakerFeeValidateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": " event indicates that taker dex fee data was not received or did not pass validation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-fee-validate-failed" + }, + { + "text": "MakerPaymentTransactionFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": "MakerPaymentTransactionFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": " event indicates that maker was not able to broadcast his payment transaction to maker coin blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-transaction-failed" + }, + { + "text": "MakerPaymentSent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": "MakerPaymentSent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": " event indicates that maker has broadcast the maker payment transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": "Maker starts waiting for taker to send his payment after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-sent" + }, + { + "text": "MakerPaymentDataSendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": "MakerPaymentDataSendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": " event indicates that maker was not able to send his payment data to taker due to a network error.\nWhen this event occurs, maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": " to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-data-send-failed" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": " event indicates that maker payment transaction did not reach the required number of confirmations before the internal timeout expiration.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "When this event occurs maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": " to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "TakerPaymentReceived", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": "TakerPaymentReceived", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": " event indicates that maker received the taker payment transaction data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": "Maker starts waiting for taker payment confirmation after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-received" + }, + { + "text": "TakerPaymentWaitConfirmStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-started" + }, + { + "text": "TakerPaymentReceived", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-started" + }, + { + "text": " event indicates that maker started waiting for taker payment confirmation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-started" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-started" + }, + { + "text": "TakerPaymentValidateFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "TakerPaymentValidateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": " event indicates that taker payment did not pass validation. For example, taker payment may have an invalid amount or the payment might be locked with a non-matching hash or timestamp.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "When this event occurs maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": " to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validate-failed" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": " event indicates that the taker payment transaction did not reach the required number of confirmations before the internal timeout expiration.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "When this event occurs maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": " to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "TakerPaymentValidatedAndConfirmed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": "TakerPaymentValidatedAndConfirmed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": " event indicates that maker validated taker payment and payment was confirmed the required number of times.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": "Maker attempts to spend the taker payment after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-validated-and-confirmed" + }, + { + "text": "TakerPaymentSpendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "TakerPaymentSpendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": " event indicates that maker payment was not able to spend taker payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "When this event occurs maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": " to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-failed" + }, + { + "text": "TakerPaymentSpent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "TakerPaymentSpent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": " event indicates that maker has broadcast the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "taker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "Maker starts waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "taker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": " confirmation after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "TakerPaymentSpendConfirmStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": "TakerPaymentSpendConfirmStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": " event indicates that maker started waiting for ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": "taker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": " transaction confirmation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-started" + }, + { + "text": "TakerPaymentSpendConfirmFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "TakerPaymentSpendConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": " event indicates that the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "taker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": " transaction did not reach the required number of confirmations before the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "maker payment lock time expiration", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": " or the ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "taker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": " transaction rejected for some reason.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "Maker attempts to refund the maker payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirm-failed" + }, + { + "text": "TakerPaymentSpendConfirmed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": "TakerPaymentSpendConfirmed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": " event indicates that the taker payment spend transaction was confirmed the required number of times.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "taker-payment-spend-confirmed" + }, + { + "text": "MakerPaymentWaitRefundStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-refund-started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-refund-started" + }, + { + "text": "MakerPaymentWaitRefundStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-refund-started" + }, + { + "text": " event indicates that maker started waiting for lock time expiration to refund the payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-refund-started" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ---------------------- | ------------------------------------------ |\n| wait_until | number (UTC timestamp) | the timestamp at which a refund will occur |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-wait-refund-started" + }, + { + "text": "MakerPaymentRefundFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": "MakerPaymentRefundFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": " event indicates that maker was not able to broadcast a refund transaction to the maker coin blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refund-failed" + }, + { + "text": "MakerPaymentRefunded", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": "MakerPaymentRefunded", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": " event indicates that maker has broadcast the maker payment refund transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "maker-payment-refunded" + }, + { + "text": "Finished", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "finished" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "finished" + }, + { + "text": "Finished", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "finished" + }, + { + "text": " event indicates that the swap finished.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "finished" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/maker_events", + "closestElementReference": "finished" + } + ], + "komodo-defi-framework/api/common_structures/swaps/taker_events": [ + { + "text": "Taker Swap Events", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-swap-events" + }, + { + "text": "Needs update for watchtower events", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-swap-events" + }, + { + "text": "Taker Success Events", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Click on an Event below to view its structure:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Started", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Started", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Negotiated", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Negotiated", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerFeeSent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerFeeSent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentInstructionsReceived", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentInstructionsReceived", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentReceived", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentReceived", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentWaitConfirmStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentWaitConfirmStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentValidatedAndConfirmed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentValidatedAndConfirmed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentSent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentSent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentSpent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "TakerPaymentSpent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentSpent", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "MakerPaymentSpent", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Finished", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Finished", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-success-events" + }, + { + "text": "Taker Error Events", + "tagName": "h2", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "Click on an Event below to view its structure:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "StartFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "StartFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "StartFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "NegotiateFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "NegotiateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "NegotiateFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerFeeSendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerFeeSendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerFeeSendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentValidateFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentValidateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentValidateFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentTransactionFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentTransactionFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentTransactionFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentDataSendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentDataSendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentDataSendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitForSpendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitForSpendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitForSpendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentSpendFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentSpendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "MakerPaymentSpendFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitRefundStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitRefundStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentWaitRefundStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundStarted", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundStarted", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefunded", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefunded", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefunded", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFailed", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFailed", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFinished", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "Started", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "The ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "Started", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": " event indicates that mandatory pre-checks, such as \"available balance,\" passed and the swap started successfully.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "The swap goes to negotiation stage after this event occurs.", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------------ | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| taker_coin | string | the ticker of taker coin |\n| maker_coin | string | the ticker of maker coin |\n| maker | string (hexadecimal) | the p2p ID of maker node |\n| my_persistent_pub | string (hexadecimal) | a persistent secp256k1 public key of taker node |\n| lock_duration | number (integer) | the lock duration of swap payments in seconds. The sender can refund the transaction when the lock duration is passed. The taker payment is locked for the lock duration. The maker payment is locked for lock duration * 2 |\n| maker_amount | string (numeric) | the amount of coins to be swapped by maker |\n| taker_amount | string (numeric) | the amount of coins to be swapped by taker |\n| maker_payment_confirmations | number (integer) | the required number of blockchain confirmations for maker payment |\n| maker_payment_requires_nota | bool | whether dPoW notarization is required for maker payment; can be null; available since ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "beta-2.0.1738", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": " |\n| taker_payment_confirmations | number (integer) | the required number of blockchain confirmations for taker payment |\n| taker_payment_requires_nota | bool | whether dPoW notarization is required for taker payment; can be null; available since ", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "beta-2.0.1738", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": " |\n| taker_payment_lock | number (UTC timestamp in seconds) | the taker payment is locked until this timestamp |\n| uuid | string | the swap uuid |\n| started_at | number (UTC timestamp in seconds) | the timestamp at the start of the swap |\n| maker_payment_wait | number (UTC timestamp in seconds) | taker will wait for maker payment confirmation until this timestamp |\n| maker_coin_start_block | number (integer) | the maker coin block number at the start of the swap |\n| taker_coin_start_block | number (integer) | the taker coin block number at the start of the swap |", + "tagName": "li", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFinished", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "TakerPaymentRefundFinished", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-error-events" + }, + { + "text": "Started", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "Started", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": " event indicates that mandatory pre-checks, such as \"available balance,\" passed and the swap started successfully.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "The swap goes to negotiation stage after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------------ | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| taker_coin | string | the ticker of taker coin |\n| maker_coin | string | the ticker of maker coin |\n| maker | string (hexadecimal) | the p2p ID of maker node |\n| my_persistent_pub | string (hexadecimal) | a persistent secp256k1 public key of taker node |\n| lock_duration | number (integer) | the lock duration of swap payments in seconds. The sender can refund the transaction when the lock duration is passed. The taker payment is locked for the lock duration. The maker payment is locked for lock duration * 2 |\n| maker_amount | string (numeric) | the amount of coins to be swapped by maker |\n| taker_amount | string (numeric) | the amount of coins to be swapped by taker |\n| maker_payment_confirmations | number (integer) | the required number of blockchain confirmations for maker payment |\n| maker_payment_requires_nota | bool | whether dPoW notarization is required for maker payment; can be null; available since ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "beta-2.0.1738", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": " |\n| taker_payment_confirmations | number (integer) | the required number of blockchain confirmations for taker payment |\n| taker_payment_requires_nota | bool | whether dPoW notarization is required for taker payment; can be null; available since ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "beta-2.0.1738", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": " |\n| taker_payment_lock | number (UTC timestamp in seconds) | the taker payment is locked until this timestamp |\n| uuid | string | the swap uuid |\n| started_at | number (UTC timestamp in seconds) | the timestamp at the start of the swap |\n| maker_payment_wait | number (UTC timestamp in seconds) | taker will wait for maker payment confirmation until this timestamp |\n| maker_coin_start_block | number (integer) | the maker coin block number at the start of the swap |\n| taker_coin_start_block | number (integer) | the taker coin block number at the start of the swap |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "started" + }, + { + "text": "StartFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": "StartFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": " event indicates that some of the pre-checks did not pass, and therefore the swap did not start.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "start-failed" + }, + { + "text": "Negotiated", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": "Negotiated", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": " event indicates that taker has received and validated swap negotiation data from maker.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": "Taker sends dex fee after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------ | --------------------------------- | ----------------------------------------------------------------- |\n| maker_payment_locktime | number (UTC timestamp in seconds) | the maker payment is locked until this timestamp |\n| maker_pubkey | string (hexadecimal) | a persistent secp256k1 public key of maker node |\n| secret_hash | string (hexadecimal) | the swap payments are expected to be locked with this secret hash |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiated" + }, + { + "text": "NegotiateFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "NegotiateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": " event indicates that maker negotiation data was not received or did not pass validation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "negotiate-failed" + }, + { + "text": "TakerFeeSent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": "TakerFeeSent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": " event indicates that taker broadcast the dex fee transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": "Taker starts waiting for maker payment after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-sent" + }, + { + "text": "TakerFeeSendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": "TakerFeeSendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": " event indicates that the taker dex fee transaction failed to broadcast to the taker coin blockchain, or that the taker failed to send the transaction data to maker.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-fee-send-failed" + }, + { + "text": "TakerPaymentInstructionsReceived", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-instructions-received" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-instructions-received" + }, + { + "text": "TakerPaymentInstructionsReceived", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-instructions-received" + }, + { + "text": " event indicates that the taker has received payment instructions.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-instructions-received" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-instructions-received" + }, + { + "text": "MakerPaymentValidateFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": "MakerPaymentValidateFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": " event indicates that taker was not able to receive or validate the maker payment transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validate-failed" + }, + { + "text": "MakerPaymentReceived", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": "MakerPaymentReceived", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": " event indicates that taker received the maker payment transaction data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": "Taker starts waiting for transaction confirmation after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-received" + }, + { + "text": "MakerPaymentWaitConfirmStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-started" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-started" + }, + { + "text": "MakerPaymentWaitConfirmStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-started" + }, + { + "text": " event indicates that taker started waiting for maker payment confirmation.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-started" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-started" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "MakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": " event indicates that the maker payment transaction did not reach the required number of confirmations before the internal timeout expiration.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "Taker swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-wait-confirm-failed" + }, + { + "text": "MakerPaymentValidatedAndConfirmed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": "MakerPaymentValidatedAndConfirmed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": " event indicates that taker validated maker payment and the payment was confirmed the required number of times.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": "Taker sends his payment after this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-validated-and-confirmed" + }, + { + "text": "TakerPaymentSent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": "TakerPaymentSent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": " event indicates that taker broadcast taker payment transaction to taker coin blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": "Taker starts waiting for maker to spend this transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-sent" + }, + { + "text": "TakerPaymentTransactionFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": "TakerPaymentTransactionFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": " event indicates that taker failed to broadcast transaction to taker coin blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-transaction-failed" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "TakerPaymentWaitConfirmFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": " event indicates that the taker payment transaction did not reach the required number of confirmations before the internal timeout expiration.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "When this event occurs taker starts waiting for taker payment lock time expiration to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-confirm-failed" + }, + { + "text": "TakerPaymentDataSendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": "TakerPaymentDataSendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": " event indicates that taker was not able to send his payment data to maker due to a network error.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": "When this event occurs taker starts waiting for taker payment lock time expiration to issue a refund.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-data-send-failed" + }, + { + "text": "TakerPaymentSpent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "TakerPaymentSpent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": " event indicates that maker spent taker payment and taker discovered the transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "When this event occurs taker extracts the secret from the transaction and attempts to spend maker payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "| Structure | Type | Description |\n| -------------------- | ------ | ---------------------------------------------------------- |\n| secret | string | the atomic swap secret extracted from spending transaction |\n| transaction | object | transaction object |\n| transaction.tx_hash | string | the hash of the transaction |\n| transaction.tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-spent" + }, + { + "text": "TakerPaymentWaitForSpendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": "TakerPaymentWaitForSpendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": " event indicates that maker did not spend taker payment before lock time expiration.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": "When this event occurs taker attempts to refund the payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-for-spend-failed" + }, + { + "text": "MakerPaymentSpendFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "MakerPaymentSpendFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": " event indicates that taker failed to broadcast ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "maker payment spend", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": " transaction to the maker coin blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spend-failed" + }, + { + "text": "MakerPaymentSpent", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": "MakerPaymentSpent", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": " event indicates that taker spent maker payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "maker-payment-spent" + }, + { + "text": "TakerPaymentWaitRefundStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-refund-started" + }, + { + "text": "TakerPaymentWaitRefundStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-refund-started" + }, + { + "text": " event indicates that taker started waiting for lock time expiration to refund the payment.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-refund-started" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ---------------------- | ------------------------------------------ |\n| wait_until | number (UTC timestamp) | the timestamp at which a refund will occur |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-wait-refund-started" + }, + { + "text": "TakerPaymentRefundStarted", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-started" + }, + { + "text": "TakerPaymentRefundStarted", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-started" + }, + { + "text": " event indicates that taker was has initiated the refund process.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-started" + }, + { + "text": "TakerPaymentRefundFailed", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-failed" + }, + { + "text": "TakerPaymentRefundFailed", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-failed" + }, + { + "text": " event indicates that taker was not able to broadcast a refund transaction to taker coin blockchain.\nThe swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-failed" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------- |\n| error | string | error description with stack trace |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-failed" + }, + { + "text": "TakerPaymentRefunded", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": "TakerPaymentRefunded", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": " event indicates that taker broadcast the taker payment refund transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": "The swap finishes immediately when this event occurs.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| tx_hash | string | the hash of the transaction |\n| tx_hex | string | transaction bytes in hexadecimal format |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refunded" + }, + { + "text": "TakerPaymentRefundFinished", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-finished" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-finished" + }, + { + "text": "TakerPaymentRefundFinished", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-finished" + }, + { + "text": " event indicates that taker refund process is complete.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-finished" + }, + { + "text": "The swap finishes immediately when this event occurs. This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "taker-payment-refund-finished" + }, + { + "text": "Finished", + "tagName": "h4", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "finished" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "finished" + }, + { + "text": "Finished", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "finished" + }, + { + "text": " event indicates that the swap finished.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "finished" + }, + { + "text": "This event does not have additional data.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/swaps/taker_events", + "closestElementReference": "finished" + } + ], + "komodo-defi-framework/api/common_structures/wallet": [ + { + "text": "Wallet Operations Structures", + "tagName": "h1", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "wallet-operations-structures" + }, + { + "text": "RawTxInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "RawTxInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": " object includes the following items:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| tx_hex | string | UTXO only. The raw unsigned hex of a proposed transaction. |\n| prev_txns | list | UTXO only. A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "InputTxns objects", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": ". |\n| to | string | ETH/EVM only. A destination address to send the funds to. |\n| value | string | ETH/EVM only. The amount of funds to be sent as a string with a ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "0x", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": " prefix, in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "wei", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": " units. |\n| gas_limit | string | ETH/EVM only. The maximum gas to be used for sending the transaction, in ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "gwei", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": " units. |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "InputTxns objects", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "wei", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "gwei", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "TODO: Confirm units used in ETH/EVM transactions.", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "raw-tx-info" + }, + { + "text": "InputTxns", + "tagName": "h3", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "InputTxns", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": " object includes the following items:", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| tx_hash | string | The transaction id of an unspent transaction from the same wallet output. |\n| index | integer | The [output index(", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "https://bitcoin.stackexchange.com/questions/100765/what-does-the-index-of-an-utxo-stand-for", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": ")] of this unspent transaction output. |\n| script_pub_key | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "scriptpubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": " of this unspent transaction output. |\n| amount | float | The value of this unspent transaction output. |\n| amount | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "https://bitcoin.stackexchange.com/questions/100765/what-does-the-index-of-an-utxo-stand-for", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + }, + { + "text": "scriptpubkey", + "tagName": "a", + "path": "komodo-defi-framework/api/common_structures/wallet", + "closestElementReference": "input-txns" + } + ], + "komodo-defi-framework/api": [ + { + "text": "Komodo DeFi Framework RPC Methods", + "tagName": "h1", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "Legacy methods are in the process of a migration to Komodo DeFi Framework API v2.0 (and will also remain backwards compatible).\nDuring development, some newer Komodo DeFi Framework API methods are not available in the latest release.", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "To test the methods in v2.0 (Dev), you will need to ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "build the Komodo DeFi Framework API", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " from the ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "dev", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " branch.", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "build the Komodo DeFi Framework API", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "Below is a table of the currently available legacy, v2.0 and v2.0 (Dev) methods:", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "| Legacy | v2.0 (release) | v2.0 (dev) |\n| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "active_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "add_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "add_node_to_version_stat", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "all_swaps_uuids_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "ban_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "best_orders", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "best_orders", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "cancel_all_orders", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "cancel_order", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "clear_nft_db", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "close_channel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "coins_needed_for_kick_start", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "convert_utxo_address", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "convertaddress", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "disable_coin", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "electrum", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_bch_with_tokens", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_erc20", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_slp", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_tendermint_token", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_tendermint_with_assets", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_channel_details", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_claimable_balances", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_current_mtp", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_enabled_coins", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_peer_topics", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_topic_peers", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_locked_amount", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_my_peer_id", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_new_address", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_list", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_metadata", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_transfers", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_peers_info", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_public_key", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_public_key_hash", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_relay_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_staking_infos", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_trade_fee", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "import_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "kmd_rewards_info", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::add_trusted_node", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::list_trusted_nodes", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::remove_trusted_node", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_banned_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_closed_channels_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_open_channels_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "max_maker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "max_taker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "metrics", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_balance", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_orders", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_recent_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_recent_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_swap_status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "open_channel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "order_status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook_depth", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orders_history_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "recover_funds_of_swap", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "recreate_swap_data", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "refresh_nft_metadata", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "remove_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "remove_node_from_version_stat", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "set_required_confirmations", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "set_requires_notarization", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "show_priv_key", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sign_message", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sign_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "start_simple_market_maker_bot", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "start_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "stop_simple_market_maker_bot", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "stop_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::create_new_account::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::init", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::status", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "unban_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_channel", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_maker_order", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_nft", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "verify_message", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "version", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | | |\n| ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " | |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw_nft", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |\n| | | ", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "z_coin_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "active_swaps", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "add_delegation", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "add_node_to_version_stat", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "all_swaps_uuids_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "ban_pubkey", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "best_orders", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "best_orders", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "buy", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "cancel_all_orders", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "cancel_order", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "clear_nft_db", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "close_channel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "coins_needed_for_kick_start", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "convert_utxo_address", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "convertaddress", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "disable_coin", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "electrum", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_bch_with_tokens", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_erc20", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_slp", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_tendermint_token", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "enable_tendermint_with_assets", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_channel_details", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_claimable_balances", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_current_mtp", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_enabled_coins", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_mesh", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_peer_topics", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_gossip_topic_peers", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_locked_amount", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_my_peer_id", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_new_address", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_list", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_metadata", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_nft_transfers", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_peers_info", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_public_key", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_public_key_hash", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_relay_mesh", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_staking_infos", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "get_trade_fee", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "import_swaps", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "kmd_rewards_info", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::add_trusted_node", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::list_trusted_nodes", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::nodes::remove_trusted_node", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_banned_pubkeys", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_closed_channels_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "list_open_channels_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "max_maker_vol", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "max_taker_vol", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "metrics", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "min_trading_vol", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_balance", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_orders", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_recent_swaps", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_recent_swaps", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_swap_status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "order_status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orderbook_depth", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "orders_history_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "recover_funds_of_swap", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "recreate_swap_data", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "refresh_nft_metadata", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "remove_delegation", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "remove_node_from_version_stat", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sell", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "set_required_confirmations", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "set_requires_notarization", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "setprice", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "show_priv_key", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sign_message", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "sign_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "start_simple_market_maker_bot", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "start_version_stat_collection", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "stop_simple_market_maker_bot", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "stop_version_stat_collection", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::account_balance::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::create_new_account::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_lightning::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_qtum::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_utxo::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::enable_z_coin::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::init", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "task::withdraw::status", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "trade_preimage", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "trade_preimage", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "unban_pubkeys", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_channel", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_maker_order", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_nft", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "update_version_stat_collection", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "verify_message", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "version", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "withdraw_nft", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + }, + { + "text": "z_coin_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api", + "closestElementReference": "komodo-de-fi-framework-rpc-methods" + } + ], + "komodo-defi-framework/api/legacy/active_swaps": [ + { + "text": "active_swaps", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "active-swaps" + }, + { + "text": "active_swaps (include_status)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "active-swaps" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "active-swaps" + }, + { + "text": "active_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "active-swaps" + }, + { + "text": " method returns all the swaps that are currently running on the Komodo DeFi Framework API node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "active-swaps" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | ---- | ---------------------------------------------------------------------------- |\n| include_status | bool | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "arguments" + }, + { + "text": ". Whether to include swap statuses in response; |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| uuids | array of strings | A list of currently active swap UUIDs. |\n| statuses | object (map) | Only visible if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "include_status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": " request parameter is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": ". A map of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": " objects, delineated by the related UUID. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "examples" + }, + { + "text": "Command (without include_status)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "command-without-include-status" + }, + { + "text": "Response (uuids only)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response-uuids-only" + }, + { + "text": "Command (include_status = true)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "command-include-status-true" + }, + { + "text": "Response (statuses included)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/active_swaps", + "closestElementReference": "response-statuses-included" + } + ], + "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter": [ + { + "text": "all_swaps_uuids_by_filter", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "all-swaps-uuids-by-filter" + }, + { + "text": "all_swaps_uuids_by_filter (my_coin other_coin from_timestamp to_timestamp)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "all-swaps-uuids-by-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "all-swaps-uuids-by-filter" + }, + { + "text": "all_swaps_uuids_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "all-swaps-uuids-by-filter" + }, + { + "text": " method returns all uuids of swaps that match the selected filters. Please note that all filters (my_coin, from_timestamp, etc.) are combined using logical AND.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "all-swaps-uuids-by-filter" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | ----------------------------- | -------------------------------------------------------------------------------------- |\n| my_coin | string | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "swap.my_coin = request.my_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| other_coin | string | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "swap.other_coin = request.other_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| from_timestamp | number (timestamp in seconds) | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "swap.started_at >= request.from_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| to_timestamp | number (timestamp in seconds) | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "swap.started_at < request.to_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | ---------------- | ---------------------------------------------- |\n| uuids | array of strings | uuids of swaps that match the selected filters |\n| my_coin | string | my_coin that was set in request |\n| other_coin | string | other_coin that was set in request |\n| from_timestamp | number | from_timestamp that was set in request |\n| to_timestamp | number | to_timestamp that was set in request |\n| records_found | number | the number of found uuids |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "examples" + }, + { + "text": "Command (select swaps uuids that have my_coin = DOC and other_coin = MARTY)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "command-select-swaps-uuids-that-have-my-coin-doc-and-other-coin-marty" + }, + { + "text": "Command (select swaps uuids that have my_coin = DOC and started_at >= 1611705600 (January 27, 2021 0:00:00 GMT))", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "command-select-swaps-uuids-that-have-my-coin-doc-and-started-at-1611705600-january-27-2021-0-00-00-gmt" + }, + { + "text": "Command (select swaps uuids that have started_at >= 1611705600 (January 27, 2021 0:00:00 GMT) and started_at < 1611792001 (January 28, 2021 0:00:01 GMT))", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "command-select-swaps-uuids-that-have-started-at-1611705600-january-27-2021-0-00-00-gmt-and-started-at-1611792001-january-28-2021-0-00-01-gmt" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/all_swaps_uuids_by_filter", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/ban_pubkey": [ + { + "text": "ban_pubkey", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "ban_pubkey pubkey reason", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "ban_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": " method bans the selected pubkey ignoring its order matching messages and preventing its orders from displaying in the orderbook.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "Use the secp256k1 pubkey without prefix for this method input. E.g. if pubkey is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "022cd3021a2197361fb70b862c412bc8e44cff6951fa1de45ceabfdd9b4c520420", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": " you should submit ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "2cd3021a2197361fb70b862c412bc8e44cff6951fa1de45ceabfdd9b4c520420", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "ban-pubkey" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------- |\n| pubkey | string | the pubkey to ban |\n| reason | string | the reason of banning |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------ |\n| result | string | whether the ban was successful |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/ban_pubkey", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/batch_requests": [ + { + "text": "batch requests", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "batch-requests" + }, + { + "text": "A batch request is a method for sending several unique requests to the network all at once.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "batch-requests" + }, + { + "text": "The requests are sent as an array filled with request objects. Results are returned in the order of received requests.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "batch-requests" + }, + { + "text": "Avoid sending requests that depend on each other. For example, do not send a coin activation and a balance request to that coin in the same batch.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "batch-requests" + }, + { + "text": "Such requests result in non-deterministic behavior, as the Komodo DeFi Framework API may or may not execute the requests in the desired order.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "batch-requests" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ------------------------------------------ |\n| (none) | array of objects | request objects to be executed in parallel |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | --------------------------------------------------------------------------------------- |\n| (none) | array of objects | the results, provided in the order of received requests; this may contain null elements |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/batch_requests", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/best_orders": [ + { + "text": "best_orders", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "best_orders coin action volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "best_orders", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": " method returns the best price orders that can fill the volume for all existing pairs with selected coin.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "The response of this method can contain coins that are not activated on the Komodo DeFi Framework API instance.\nActivation will be required to proceed with the trade.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------- |\n| coin | string | the ticker of the coin to get best orders |\n| action | string | whether to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " the selected coin |\n| volume | string | the amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " user is willing to buy or sell |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------------ | ----------------------------------------------------------------------------------------------------------------------- |\n| result | object (map) | A map of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": " objects (by ticker) |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": "where order entry has the following structure", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/best_orders", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/buy": [ + { + "text": "buy", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "buy base rel price volume (match_by order_type base_confs base_nota rel_confs rel_nota min_volume)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " method issues a buy request and attempts to match an order from the orderbook based on the provided arguments.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "Buy and sell methods always create the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "taker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " order first. A ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "taker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " order must pay a ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "dexfee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " during the swap as it is taking liquidity from the market. The ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "dexfee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " is calculated as \"the greater of either ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "Minimum transaction amount (dust) TAKER COIN", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "0.0001 TAKER COIN", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "1/777th", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " the size of the desired order\". If your ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "GoodTillCancelled", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " order is not matched in 30 seconds, the order is automatically converted to a ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "maker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " request and stays on the orderbook until the request is matched or cancelled. To always act as a maker, please use the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "setprice", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " method.", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "setprice", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "To prevent a user from making trades in which the transaction fees may end up costing a significant portion of the value of the trade, we have set a lower limit to the value of a trade. See the description of the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "volume", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "min_volume", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": " arguments for more info.", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "buy" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base | string | The name of the coin the user desires to receive |\n| rel | string | The name of the coin the user desires to sell |\n| price | varies | The price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to pay per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " coin. Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| volume | varies | The amount of coins the user is willing to receive of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " coin; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": ". . Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| min_volume | varies (optional) | The amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " coin that will be used as ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " order after conversion to maker; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": ". . Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| match_by | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "MatchBy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " object, to filter to include only matches by pubkey or uuid. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "Important:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " This condition is not applied after a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " order is converted to a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " request. |\n| order_type | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "OrderType", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " object. |\n| base_confs | number | Number of required blockchain confirmations for base coin atomic swap transaction; default to base coin configuration if not set |\n| base_nota | boolean | Whether dPoW notarization is required for base coin atomic swap transaction; default to base coin configuration if not set |\n| rel_confs | number | Number of required blockchain confirmations for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| rel_nota | boolean | Whether dPoW notarization is required for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| save_in_history | boolean | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": ". If set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": " no order history will be saved (though order status will be temporarily stored while in progress). If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": ", each order's short record history is stored in a local SQLite database table, and when the order is cancelled or fully matched, it's history will be saved as a json file |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "MatchBy", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "OrderType", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| action | string | The action of the request (", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "Buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": ") |\n| base | string | The base currency of request |\n| base_amount | string | The resulting amount of base currency that is received if the order matches (in decimal representation) |\n| base_amount_rat | rational | The resulting amount of base currency that is received if the order matches, represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " object. |\n| rel | string | The rel currency of the request |\n| rel_amount | string | The maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " coin that is spent in order to buy the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "base_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " (according to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": ", in decimal representation) |\n| rel_amount_rat | rational | The maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " coin that is spent in order to buy the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "base_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " (according to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": ", represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " object). |\n| method | string | This field is used for internal P2P interactions; the value is always equal to \"request |\n| dest_pub_key | string | Reserved for future use. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "dest_pub_key", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " allows the user to choose the P2P node that is eligible to match with the request. This value defaults to a \"zero pubkey\", which means ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "anyone", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " can be a match |\n| sender_pubkey | string | The public key of this node |\n| uuid | string | The request uuid |\n| match_by | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "MatchBy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " object, to filter to include only matches by pubkey or uuid. |\n| conf_settings | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " object. |\n| base_orderbook_ticker | string | The ticker of the base currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " is configured for the base currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |\n| rel_orderbook_ticker | string | The ticker of the rel currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " is configured for the rel currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "MatchBy", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "examples" + }, + { + "text": "Command (decimal representation)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-decimal-representation" + }, + { + "text": "Command (rational representation in num-rational crate format)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-rational-representation-in-num-rational-crate-format" + }, + { + "text": "Command (rational representation as fraction object)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-rational-representation-as-fraction-object" + }, + { + "text": "Command (with confirmations and notarization settings)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-with-confirmations-and-notarization-settings" + }, + { + "text": "Command (set to not save order history)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-set-to-not-save-order-history" + }, + { + "text": "Command (GoodTillCancelled type)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-good-till-cancelled-type" + }, + { + "text": "Command (FillOrKill type)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-fill-or-kill-type" + }, + { + "text": "Command (match by Any)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-match-by-any" + }, + { + "text": "Command (match by Pubkeys)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-match-by-pubkeys" + }, + { + "text": "Command (match by Orders)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "command-match-by-orders" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response-error" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/buy", + "closestElementReference": "response-error-2" + } + ], + "komodo-defi-framework/api/legacy/cancel_all_orders": [ + { + "text": "cancel_all_orders", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "cancel-all-orders" + }, + { + "text": "cancel_all_orders cancel_by", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "cancel-all-orders" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "cancel-all-orders" + }, + { + "text": "cancel_all_orders", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "cancel-all-orders" + }, + { + "text": " cancels the active orders created by the Komodo DeFi Framework API node by specified condition.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "cancel-all-orders" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ---------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| cancel_by | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "arguments" + }, + { + "text": "CancelBy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "arguments" + }, + { + "text": " object. Orders matching this filter are cancelled. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "arguments" + }, + { + "text": "CancelBy", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------- |\n| cancelled | array of strings (uuids) | uuids of cancelled orders |\n| currently_matching | array of strings (uuids) | uuids of the orders being matched with other orders; these are not cancelled even if they fit cancel condition |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "examples" + }, + { + "text": "Command (All orders)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "command-all-orders" + }, + { + "text": "Command (Cancel by pair)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "command-cancel-by-pair" + }, + { + "text": "Command (Cancel by coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "command-cancel-by-coin" + }, + { + "text": "Response (1 order cancelled)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "response-1-order-cancelled" + }, + { + "text": "Response (1 order cancelled and 1 is currently matching)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_all_orders", + "closestElementReference": "response-1-order-cancelled-and-1-is-currently-matching" + } + ], + "komodo-defi-framework/api/legacy/cancel_order": [ + { + "text": "cancel_order", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "cancel-order" + }, + { + "text": "cancel_order uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "cancel-order" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "cancel-order" + }, + { + "text": "cancel_order", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "cancel-order" + }, + { + "text": " cancels the active order created by the Komodo DeFi Framework API node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "cancel-order" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------ |\n| uuid | string | the uuid of the order the user desires to cancel |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------- |\n| result | string | indicates the status of operation |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/cancel_order", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/coin_activation": [ + { + "text": "Coin Activation", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "There are two methods of coin activation:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "enable", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " - Connects to a native daemon, or a url which handles RPCs for Platform coins (e.g. ETH, MATIC, FTM, BNB, ONE)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "electrum", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " - Connects to an ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "electrum server", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " for UTXO based coins and QTUM/QRC20 tokens.", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "electrum server", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "A coin can only be activated once per session, and must be activated before it can be used in trading or wallet functions.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "The Komodo DeFi Framework API requires an ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " parameter to be set for each ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": ". This can be added to the enable/electrum command, or defined in your ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "coins file", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "coins file", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "The value of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " parameter informs the software as to whether the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " is expected to be compatible for atomic swaps.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "0", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "non-compatible", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "1", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": " = ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "compatible", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "Many examples of activation commands are available at ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "kmd.stats.io", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "kmd.stats.io", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "coin-activation" + }, + { + "text": "Native mode activation", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "If you are running a UTXO based coin daemon locally and the blockchain is synchronised, you can connect the local daemon to the Komodo DeFi Framework API by using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "enable", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": " method, though some additional configuration is required. The Komodo DeFi Framework API requires the following options to be added to the native chain's ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": ".conf file", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": ".conf file", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "The Komodo DeFi Framework API node's coin address needs to be imported manually into the coin daemon using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "importaddress", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "importaddress", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-mode-activation" + }, + { + "text": "Lite mode activation", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Activating coins in 'lite mode' means you don't need to have a native coin daemon installed, or keep a local blockchain synchronised. In this mode, the Komodo DeFi Framework API communicates with an external node to perform transactions and query the blockchain. UTXO based coins and QTUM/QRC20 tokens communicate via electrum servers, while other platform coins communicate via JSON RPC urls.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Komodo DeFi Framework is a true cross chain, cross protocol Decentralized Exchange (DEX), allowing for trades between coins and tokens across many platforms and ecosystems, such as:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "UTXO based coins (e.g. DOGE, BTC, ZEC, LTC, DASH, DGB)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Ethereum (ETH)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "ERC20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Ethereum (ETH)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "ERC20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Binance Coin (BNB)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "BEP20", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Binance Coin (BNB)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "BEP20", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "QTUM", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "QRC20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "QTUM", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "QRC20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Polygon (MATIC)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "PLG20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Polygon (MATIC)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "PLG20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Harmony (ONE)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "HRC20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Harmony (ONE)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "HRC20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Fantom (FTM)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "FTM20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Fantom (FTM)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "FTM20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Avalanche (AVAX)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "AVX20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Avalanche (AVAX)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "AVX20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Moonriver (MOVR)", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": " & ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "MVR20 tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Moonriver (MOVR)", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "MVR20 tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "And more!", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "lite-mode-activation" + }, + { + "text": "Electrum Method", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "electrum-method" + }, + { + "text": "Electrum mode is only available for UTXO based coins and QTUM/QRC20 tokens.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "electrum-method" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| coin | string | Ticker of coin to activate |\n| servers | array of objects | List of [Electrum servers] (", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| servers.url | string | Electrum server URL |\n| servers.protocol | string (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ") | Transport protocol used by Komodo DeFi Framework API to connect to the electrum server (", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| servers.disable_cert_verification | bool (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ".) | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ", this disables server SSL/TLS certificate verification (e.g. to use self-signed certificate). ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "Use at your own risk", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " |\n| mm2 | integer | Required if not set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " file. Informs the Komodo DeFi Framework API whether or not the coin is expected to function. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " |\n| tx_history | bool | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " the Komodo DeFi Framework API will preload trasaction history as a background process. Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " method |\n| required_confirmations | integer (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ") | Number of confirmations for the Komodo DeFi Framework API to wait during the transaction steps of an atomic swap. |\n| requires_notarization | boolean (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ") | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": ", coins protected by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " will wait for a notarization before progressing to the next atomic swap transactions step. |\n| swap_contract_address | string (required for QRC20 only) | address of etomic swap smart contract |\n| fallback_swap_contract | string (required for QRC20 only) | address of backup etomic swap smart contract |\n| utxo_merge_params | object (optional) | If set, will consolidate excessive UTXOs (e.g. from mining) |\n| utxo_merge_params.merge_at | integer | Number of UTXOs in wallet required before merging |\n| utxo_merge_params.check_every | integer | How often to check the UTXO count, in seconds. Ideally should be at least 3x the coins block time. |\n| utxo_merge_params.max_merge_at_once | integer | Maximum number of UTXOs to merge in each consolidation transaction. Should be less that ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "merge_at", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": " value, but will fail if so high the transaction becomes too large. Suggested maximum is 250. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| address | string | the address of the user's ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": " wallet, based on the user's passphrase |\n| balance | string (numeric) | the amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": " the user holds in their wallet; does not include ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "unspendable_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": " |\n| unspendable_balance | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": " balance that is unspendable at the moment (e.g. if the address has immature UTXOs) |\n| coin | string | the ticker of the enabled coin |\n| required_confirmations | number | the number of transaction confirmations for which the Komodo DeFi Framework API must wait during the atomic swap process |\n| mature_confirmations | number (optional) | the number of coinbase transaction confirmations required to become mature; UTXO coins only |\n| requires_notarization | bool | whether the node must wait for a notarization of the selected coin that is performing the atomic swap transactions; applicable only for coins using Komodo dPoW |\n| result | string | the result of the request; this value either indicates ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": ", or an error, or another type of failure |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "examples" + }, + { + "text": "UTXO coin activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "utxo-coin-activation" + }, + { + "text": "Response (Success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-success" + }, + { + "text": "UTXO coin activation with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": "required_confirmations", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": ", ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": "requires_notarization", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": "mm2", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": " arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-2" + }, + { + "text": "Response (Success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-success-2" + }, + { + "text": "QTUM/QRC20 coin activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "qtum-qrc-20-coin-activation" + }, + { + "text": "Response (Success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-success-3" + }, + { + "text": "Response (Error, ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": "mm2", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": " is not set)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": "If mm2 is not set in either the command or your ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": " file, you will see the following error:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "is-not-set" + }, + { + "text": "Enable Method", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "enable-method" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin the user desires to enable |\n| urls | array of strings (required for ETH/ERC20 and other gas model chains) | urls of Ethereum RPC nodes to which the user desires to connect |\n| swap_contract_address | string (required for QRC20 only) | address of etomic swap smart contract |\n| fallback_swap_contract | string (required for QRC20 only) | address of backup etomic swap smart contract |\n| gas_station_decimals | integer (optional for ETH/ERC20 and other gas model chains) | Defines the decimals used to denominate the gas station response to gwei units. For example, the ETH gas station uses 8 decimals, which means that \"average\": 860 is equal to 86 gwei. While the Matic gas station uses 9 decimals, so 860 would mean 860 gwei exactly. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "8", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " |\n| gas_station_policy.policy | string (optional for ETH/ERC20 and other gas model chains) | Defines the method of gas price calculation from the station response. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "\"MeanAverageFast\"", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " will use the mean between average and fast fields. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "\"Average\"", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " will return a simple average value. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "\"MeanAverageFast\"", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": ". |\n| mm2 | integer | Required if not set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " file. Informs the Komodo DeFi Framework API whether or not the coin is expected to function. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " |\n| tx_history | bool | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " the Komodo DeFi Framework API will preload transaction history as a background process. Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " method |\n| required_confirmations | integer (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": ") | Number of confirmations for the Komodo DeFi Framework API to wait during the transaction steps of an atomic swap. |\n| requires_notarization | boolean (optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": ") | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": ", coins protected by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": " will wait for a notarization before progressing to the next atomic swap transactions step. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------ |\n| address | string | the address of the user's ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": " wallet, based on the user's passphrase |\n| balance | string (numeric) | the amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": " the user holds in their wallet; does not include ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "unspendable_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": " |\n| unspendable_balance | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": " balance that is unspendable at the moment (e.g. if the address has immature UTXOs) |\n| coin | string | the ticker of enabled coin |\n| required_confirmations | number | Komodo DeFi Framework API will wait for the this number of coin's transaction confirmations during the swap |\n| requires_notarization | bool | whether the node must wait for a notarization of the selected coin that is performing the atomic swap transactions |\n| mature_confirmations | number (optional) | the number of coinbase transaction confirmations required to become mature; UTXO coins only |\n| result | string | the result of the request; this value either indicates ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": ", or an error or other type of failure |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "examples-2" + }, + { + "text": "Native UTXO coin activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "native-utxo-coin-activation" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-3" + }, + { + "text": "Command (With ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": "required_confirmations", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": ", ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": "requires_notarization", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": " and ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": "mm2", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": " arguments)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-4" + }, + { + "text": "Command (for Ethereum and ERC20-based blockchains)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "command-for-ethereum-and-erc-20-based-blockchains" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-5" + }, + { + "text": "EVM coin activation with gas_station_url and policy", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "evm-coin-activation-with-gas-station-url-and-policy" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-6" + }, + { + "text": "Polygon (MATIC) and PLG20 activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "polygon-matic-and-plg-20-activation" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-7" + }, + { + "text": "Binance Coin (BNB) and BEP20 activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "binance-coin-bnb-and-bep-20-activation" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "For enabling Z coins, refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "ZHTLC activation tasks", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": " in the v2.0 Dev API.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "ZHTLC activation tasks", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "To see more examples for other platforms like Fantom, Avalanche & Harmony, you can search the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Komodo DeFi Framework API Coin Activation Commands List\n", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": " or build a single ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "batch", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": " command to enable a set of selected coins via the\n", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Batch Coin Activation Form", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Komodo DeFi Framework API Coin Activation Commands List\n", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Batch Coin Activation Form", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "We welcome volunteers to test new coins for Komodo DeFi Framework API compatibility! Follow the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Submitting Coin Test Results guide", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": " for more information, or drop into the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": " for a chat if you need some help.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Submitting Coin Test Results guide", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/coin_activation", + "closestElementReference": "response-8" + } + ], + "komodo-defi-framework/api/legacy/coins_needed_for_kick_start": [ + { + "text": "coins_needed_for_kick_start", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "coins_needed_for_kick_start()", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "If the Komodo DeFi Framework API is stopped while making a swap/having the active order it will attempt to kick-start them on next launch and continue from the point where it's stopped. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "coins_needed_for_kick_start", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": " returns the tickers of coins that should be activated ASAP after the Komodo DeFi Framework API is started to continue the interrupted swaps. Consider calling this method on Komodo DeFi Framework API startup and activate the returned coins using ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "enable", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": " methods.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "coins-needed-for-kick-start" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ------------------------------------------------------------------------ |\n| result | array of strings | tickers of coins that should be activated to kick-start swaps and orders |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "command" + }, + { + "text": "Response (BTC and KMD should be activated ASAP in this case)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "response-btc-and-kmd-should-be-activated-asap-in-this-case" + }, + { + "text": "Response (no swaps and orders waiting to be started)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/coins_needed_for_kick_start", + "closestElementReference": "response-no-swaps-and-orders-waiting-to-be-started" + } + ], + "komodo-defi-framework/api/legacy/convert_utxo_address": [ + { + "text": "convert_utxo_address", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "convert-utxo-address" + }, + { + "text": "convert_utxo_address address to_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "convert-utxo-address" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "convert-utxo-address" + }, + { + "text": "convert_utxo_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "convert-utxo-address" + }, + { + "text": " method takes a UTXO address as input, and returns the equivalent address for another UTXO coin (e.g. from BTC address to RVN address)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "convert-utxo-address" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------- |\n| address | string | Input UTXO address |\n| to_coin | string | Input address to convert from |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------- |\n| result | string | Converted address |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - coin not enabled)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "response-error-coin-not-enabled" + }, + { + "text": "Response (error - input address checksum failed)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convert_utxo_address", + "closestElementReference": "response-error-input-address-checksum-failed" + } + ], + "komodo-defi-framework/api/legacy/convertaddress": [ + { + "text": "convertaddress", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "convertaddress coin from to_address_format", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "convertaddress", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": " method converts an input address to a specified address format.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "For example, this method can be used to convert a BCH address from legacy to cash address format and vice versa.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "Or this can be used to convert an ETH address from single to mixed case checksum format.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "convertaddress" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------------- | ------ | ----------------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin address context |\n| from | string | input address |\n| to_address_format | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "arguments" + }, + { + "text": "AddressFormat", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "arguments" + }, + { + "text": " object |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "arguments" + }, + { + "text": "AddressFormat", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------- |\n| address | string | the result of address conversion |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "examples" + }, + { + "text": "Command (ETH single case address to mixed checksum)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "command-eth-single-case-address-to-mixed-checksum" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response-2" + }, + { + "text": "Command (BCH legacy to cash address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "command-bch-legacy-to-cash-address" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response-3" + }, + { + "text": "Command (BCH cash address to legacy)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "command-bch-cash-address-to-legacy" + }, + { + "text": "Response:", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response-4" + }, + { + "text": "Command (Qtum wallet address to QRC20 contract address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "command-qtum-wallet-address-to-qrc-20-contract-address" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response-5" + }, + { + "text": "Command (QRC20 contract address to Qtum wallet address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "command-qrc-20-contract-address-to-qtum-wallet-address" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/convertaddress", + "closestElementReference": "response-6" + } + ], + "komodo-defi-framework/api/legacy/disable_coin": [ + { + "text": "disable_coin", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "disable_coin coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "disable_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": " method deactivates the previously enabled coin, and also cancels all active orders that use the selected coin. The method will return an error in the following cases:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "The coin is not enabled", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "The coin is used by active swaps", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "The coin is used by a currently matching order. In this case, other orders might still be cancelled", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "disable-coin" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------- |\n| coin | string | the ticker of coin to disable |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ---------------- | -------------------------------------------------------------------------------- |\n| coin | string | the ticker of deactivated coin |\n| cancelled_orders | array of strings | uuids of cancelled orders |\n| swaps | array of strings | uuids of active swaps that use the selected coin; present only in error cases |\n| orders.matching | array of strings | uuids of matching orders that use the selected coin; present only in error cases |\n| orders.cancelled | array of strings | uuids of orders that were successfully cancelled despite the error |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - coin is not enabled)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response-error-coin-is-not-enabled" + }, + { + "text": "Response (error - active swap is using the coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response-error-active-swap-is-using-the-coin" + }, + { + "text": "Response (error - the order is matched at the moment, but another order is cancelled)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/disable_coin", + "closestElementReference": "response-error-the-order-is-matched-at-the-moment-but-another-order-is-cancelled" + } + ], + "komodo-defi-framework/api/legacy/get_enabled_coins": [ + { + "text": "get_enabled_coins", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "get-enabled-coins" + }, + { + "text": "get_enabled_coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "get-enabled-coins" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "get-enabled-coins" + }, + { + "text": "get_enabled_coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "get-enabled-coins" + }, + { + "text": " method returns data of coins that are currently enabled on the user's Komodo DeFi Framework API node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "get-enabled-coins" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ---------------- | -------------------------------------- |\n| result | array of objects | tickers and addresses of enabled coins |\n| result.address | string | the user's address for this coin |\n| result.ticker | string | the ticker name of this coin |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_enabled_coins", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/get_gossip_mesh": [ + { + "text": "get_gossip_mesh", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "get-gossip-mesh" + }, + { + "text": "get_gossip_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "get-gossip-mesh" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "get-gossip-mesh" + }, + { + "text": "get_gossip_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "get-gossip-mesh" + }, + { + "text": " method returns an array of peerIDs added to a topics' mesh for each known gossipsub topic.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "get-gossip-mesh" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ----- | ---------------------------------------------------------------- |\n| Topic-PeerID map | Array | PeerIDs added to a topics' mesh (for each known gossipsub topic) |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_mesh", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_gossip_peer_topics": [ + { + "text": "get_gossip_peer_topics", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "get-gossip-peer-topics" + }, + { + "text": "get_gossip_peer_topics", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "get-gossip-peer-topics" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "get-gossip-peer-topics" + }, + { + "text": "get_gossip_peer_topics", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "get-gossip-peer-topics" + }, + { + "text": " method returns a map of peerIDs to an array of the topics to which they are subscribed.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "get-gossip-peer-topics" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ----- | ------------------------------- |\n| PeerID-Topic map | Array | Topics subscribed to by PeerIDs |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_peer_topics", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_gossip_topic_peers": [ + { + "text": "get_gossip_topic_peers", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "get-gossip-topic-peers" + }, + { + "text": "get_gossip_topic_peers", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "get-gossip-topic-peers" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "get-gossip-topic-peers" + }, + { + "text": "get_gossip_topic_peers", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "get-gossip-topic-peers" + }, + { + "text": " method returns a map of topics to an array of the PeerIDs which are subscribers.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "get-gossip-topic-peers" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ----- | ----------------------------- |\n| Topic-PeerID map | Array | PeerIDs subscribed to a topic |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_gossip_topic_peers", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_my_peer_id": [ + { + "text": "get_my_peer_id", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "get-my-peer-id" + }, + { + "text": "get_my_peer_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "get-my-peer-id" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "get-my-peer-id" + }, + { + "text": "get_my_peer_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "get-my-peer-id" + }, + { + "text": " method returns your unique identifying Peer ID on the network", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "get-my-peer-id" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------------- |\n| PeerID | string | The PeerID of your node on the network |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_my_peer_id", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_peers_info": [ + { + "text": "get_peers_info", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "get_peers_info", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "get_peers_info", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": " method all connected peers with their multiaddresses. See ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "https://docs.libp2p.io/concepts/addressing/", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "https://docs.libp2p.io/concepts/addressing/", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "get-peers-info" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------------- | ----- | ---------------------------------------------- |\n| PeerID-Multiaddresses | Array | All connected peers with their multiaddresses. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_peers_info", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_relay_mesh": [ + { + "text": "get_relay_mesh", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "get-relay-mesh" + }, + { + "text": "get_relay_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "get-relay-mesh" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "get-relay-mesh" + }, + { + "text": "get_relay_mesh", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "get-relay-mesh" + }, + { + "text": " method returns a list of peerIDs included in our local relay mesh.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "get-relay-mesh" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ------------------------------------ |\n| PeerIDs | List | PeerIDs within your local relay mesh |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_relay_mesh", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/get_trade_fee": [ + { + "text": "get_trade_fee", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "get_trade_fee coin (deprecated)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "get_trade_fee", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " method returns the approximate amount of the miner fee that is paid per swap transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "This amount should be multiplied by 2 and deducted from the volume on ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "buy/sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " calls when the user is about to trade the entire balance of the selected coin. This aspect is currently under development.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "This function is deprecated. Please consider using ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "trade_preimage v2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " instead.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "trade_preimage v2.0", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "To send QRC20 Maker/Taker payment, you may need to allow the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "Etomic Swap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " smart contract to withdraw amounts from your account using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "approve", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " call.\nIn the worst case, you should call the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "approve", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " twice (reduce allowance to 0 and set it to a required value) before the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "erc20Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " is called.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "Etomic Swap", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "approve", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "erc20Payment", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "Gas Limit ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "100000", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " and Gas Price ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "40", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " are sufficient for one smart contract call.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "As a result, the value returned by the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "get_trade_fee", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " for a QRC20 token includes gas fee ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "3 * 100000 * 40 = 12000000", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": " that can be used in the worst case.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "get-trade-fee" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------ |\n| coin | string | the name of the coin for the requested trade fee |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| coin | string | the fee is paid from the user's balance of this coin. This coin name may differ from the requested coin. For example, ERC20 fees are paid by ETH (gas) |\n| amount | string (numeric) | the approximate fee amount to be paid per swap transaction in decimal representation |\n| amount_rat | rational | the approximate fee amount to be paid per swap transaction, represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": " object |\n| amount_fraction | fraction | the approximate fee amount to be paid per swap transaction, represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": " object |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "examples" + }, + { + "text": "Command (BTC)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "command-btc" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response-2" + }, + { + "text": "Command (ETH)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "command-eth" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response-3" + }, + { + "text": "Command (ERC20)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "command-erc-20" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/get_trade_fee", + "closestElementReference": "response-4" + } + ], + "komodo-defi-framework/api/legacy/help": [ + { + "text": "help", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "help" + }, + { + "text": "help()", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "help" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "help" + }, + { + "text": "help", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "help" + }, + { + "text": " method returns the full API documentation in the terminal.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "help" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------------------- | ---- | ----------- |\n| (returns the documentation in terminal) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/help", + "closestElementReference": "response" + } + ], + "komodo-defi-framework/api/legacy/import_swaps": [ + { + "text": "import_swaps", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "import_swaps swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "import_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": " method imports to the local database the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": " data that was exported from another Komodo DeFi Framework API instance.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "Use this method in combination with ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "my_swap_status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "my_recent_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": " to copy the swap history between different devices.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "import-swaps" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | -------------------------------------------------------------------------------------------------------- |\n| swaps | array of objects | A map of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "arguments" + }, + { + "text": "SwapStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "arguments" + }, + { + "text": " objects. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "arguments" + }, + { + "text": "SwapStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | ---------------- | ------------------------------------------------------------ |\n| result.imported | array of strings | uuids of swaps that were successfully imported |\n| result.imported | map | uuids of swaps that failed to import; includes error message |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/import_swaps", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy": [ + { + "text": "Komodo DeFi Framework API RPC (Legacy)", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy", + "closestElementReference": "komodo-de-fi-framework-api-rpc-legacy" + }, + { + "text": "This section of the documentation contains the Legacy Komodo DeFi Framework methods that are currently being ported to the 2.0 version", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy", + "closestElementReference": "komodo-de-fi-framework-api-rpc-legacy" + } + ], + "komodo-defi-framework/api/legacy/kmd_rewards_info": [ + { + "text": "kmd_rewards_info", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": "kmd_rewards_info", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": "kmd_rewards_info", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": " method returns information about the active user rewards that can be claimed by an address's unspent outputs.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": "This method only works when the KMD coin is activated.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "kmd-rewards-info" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | array of objects | the rewards info; each element corresponds to an unspent output and contains detailed information about the active user rewards corresponding to it |\n| tx_hash | string | the hash of the transaction |\n| height | number (integer, optional) | the height of the block in which the transaction was included (empty if the tx is not mined yet) |\n| output_index | number (integer) | the zero-based index of the output in the transaction’s list of outputs |\n| amount | string (numeric) | the transaction output’s value |\n| locktime | number (integer) | the transaction output's locktime |\n| accrued_rewards | object | the amount of accrued rewards if they exist or the reason for their non existence |\n| accrue_start_at | number (integer, optional) | the rewards start to accrue at this time for the given transaction (empty if the rewards will never accrue to it) |\n| accrue_stop_at | number (integer, optional) | the rewards stop to accrue at this time for the given transaction (empty if the tx is not mined yet or if rewards will never accrue to it) |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "Where the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "accrued_rewards", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": " has either", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ----------------------------- |\n| Accrued | string (numeric) | the amount of accrued rewards |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "or", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ------ | -------------------------------------- |\n| NotAccruedReason | string | the reason why rewards are not accrued |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/kmd_rewards_info", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/list_banned_pubkeys": [ + { + "text": "list_banned_pubkeys", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "list_banned_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "list_banned_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": " method returns a list of public keys of nodes that are banned from interacting with the node executing the method.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "Banned nodes cannot complete orders and order matching requests with the node executing the method.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "Some cases of swap failures give cause for banning a node. For example, a market taker may not follow the atomic-swap protocol by not sending the dex fee. The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "list_banned_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": " method is useful in these circumstances.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "list-banned-pubkeys" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------- |\n| result | map of objects (key - pubkey in hexadecimal representation) | the list of pubkeys banned by current node |\n| result.*.type | string | the type of the ban; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "Manual", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "FailedSwap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": " |\n| result.*.caused_by_swap | string (optional) | the uuid of the swap that triggered the ban; present only for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "FailedSwap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": " type |\n| result.*.caused_by_event | object (optional) | the swap event that triggered the ban; present only for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "FailedSwap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": " type |\n| result.*.reason | string (optional) | the reason for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "Manual", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": " ban |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/list_banned_pubkeys", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/max_taker_vol": [ + { + "text": "max_taker_vol", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "max_taker_vol coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "max_taker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": " method returns the maximum available volume for buy/sell methods for selected ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": ".\nThis takes the dex fee and blockchain miner fees into account. The result should be used as is for ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": " method or divided by price for ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "max-taker-vol" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------------------- |\n| coin | string | the name of the coin to retrieve the max available taker volume |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | fraction | the max available taker volume, represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/max_taker_vol", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/metrics": [ + { + "text": "metrics", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "metrics", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": " method returns a snapshot of the current Komodo DeFi Framework API metrics used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Grafana", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": ".\nFor more information check out the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Komodo DeFi Framework metrics guide", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Prometheus", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Grafana", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Komodo DeFi Framework metrics guide", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": "metrics", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": " method does not take any additional parameters, and does not require authentication with your ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": "rpc_password", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| metrics | list of objects | There are a variety of metrics returned, with each metrics object havine a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "key", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "label", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": ", and some values which vary by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response-parameters" + }, + { + "text": "Metrics object", + "tagName": "h3", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| type | string | A metric type which indicates how it should be displayed in visualisation. |\n| key | string | A descriptive name assigned to the metric. |\n| labels | object | Labels can be used to group similar metrics together or provide additional context. |\n| value | float | Returned if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "gauge", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": ". A numeric value which indicates the magnitude of the metric being measured. |\n| count | float | Returned if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "histogram", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": ". How many values were measured. |\n| min | float | Returned if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "histogram", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": ". The smallest value measured. |\n| max | float | Returned if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "histogram", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": ". The highest value measured. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "metrics-object" + }, + { + "text": "📌 Example(s)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "example-s" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/metrics", + "closestElementReference": "response" + } + ], + "komodo-defi-framework/api/legacy/min_trading_vol": [ + { + "text": "min_trading_vol", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": "min_trading_vol coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": " method returns the minimum required volume for buy/sell/setprice methods for the selected ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "min-trading-vol" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------------------------------------- |\n| coin | string | the name of the coin to retrieve the minimum trading volume |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | object | result object |\n| coin | string | the coin ticker from the request |\n| min_trading_vol | string (decimal) | the minimum trading volume threshold in decimal representation |\n| min_trading_vol_rat | rational | the minimum trading volume threshold represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": " object |\n| min_trading_vol_fraction | fraction | the minimum trading volume threshold represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": " object |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/min_trading_vol", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/my_balance": [ + { + "text": "my_balance", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": "my_balance coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": "my_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": " method returns the current balance of the specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "my-balance" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------------------- |\n| coin | string | the name of the coin to retrieve the balance |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------------- | ---------------- | --------------------------------------------------------------------------------------------- |\n| address | string | the address that holds the coins |\n| balance | string (numeric) | the number of coins in the address; does not include ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": "unspendable_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": " |\n| unspendable_balance | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": " balance that is unspendable at the moment (e.g. if the address has immature UTXOs) |\n| coin | string | the name of the coin |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_balance", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/my_orders": [ + { + "text": "my_orders", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "my-orders" + }, + { + "text": "my_orders()", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "my-orders" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "my-orders" + }, + { + "text": "my_orders", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "my-orders" + }, + { + "text": " method returns the data of all active orders created by the Komodo DeFi Framework API node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "my-orders" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | -------------- | ----------------------------------------------------- |\n| maker_orders | map of objects | orders that are currently active in market-maker mode |\n| taker_orders | map of objects | orders that are currently active in market-taker mode |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_orders", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/my_recent_swaps": [ + { + "text": "my_recent_swaps", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "my_recent_swaps (from_uuid page_number=1 limit=10 my_coin other_coin from_timestamp to_timestamp)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "my_recent_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": " method returns the data of the most recent atomic swaps executed by the Komodo DeFi Framework API node. Please note that all filters (my_coin, from_timestamp, etc.) are combined using logical AND.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| limit | number | limits the number of returned swaps. The default is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": ". |\n| from_uuid | string | Komodo DeFi Framework API will skip records until this uuid, skipping the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " as well; The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " approach is convenient for infinite scrolling implementation |\n| page_number | number | Komodo DeFi Framework API will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "limit", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " swaps from the selected page; This param will be ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " is set. |\n| my_coin | string | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "swap.my_coin = request.my_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| other_coin | string | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "swap.other_coin = request.other_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| from_timestamp | number (timestamp in seconds) | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "swap.started_at >= request.from_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| to_timestamp | number (timestamp in seconds) | return only swaps that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "swap.started_at < request.to_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": " condition |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| swaps | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " objects |\n| from_uuid | string | the from_uuid that was set in the request; this value is null if nothing was set |\n| skipped | number | the number of skipped records (i.e. the position of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " in the list + 1 or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "(page_number - 1) * limit", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "; the value is 0 if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " were not set or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " is 1) |\n| limit | number | the limit that was set in the request; note that the actual number of swaps can differ from the specified limit (e.g. on the last page) |\n| total | number | total number of swaps available with the selected filters |\n| page_number | number | the page_number that was set in the request; if both ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " are not set in request it will default to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "; if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " is present in request this value will be always null |\n| total_pages | number | total pages available with the selected filters and limit |\n| found_records | number | the number of returned swaps |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "examples" + }, + { + "text": "Command (limit + from_uuid)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "command-limit-from-uuid" + }, + { + "text": "Command (limit + page_number)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "command-limit-page-number" + }, + { + "text": "Command (select swaps that have my_coin = DOC and other_coin = MARTY)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "command-select-swaps-that-have-my-coin-doc-and-other-coin-marty" + }, + { + "text": "Command (select swaps that have my_coin = DOC and started_at >= 1611705600 (January 27, 2021 0:00:00 GMT))", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "command-select-swaps-that-have-my-coin-doc-and-started-at-1611705600-january-27-2021-0-00-00-gmt" + }, + { + "text": "Command (select swaps that have started_at >= 1611705600 (January 27, 2021 0:00:00 GMT) and started_at < 1611792001 (January 28, 2021 0:00:01 GMT))", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "command-select-swaps-that-have-started-at-1611705600-january-27-2021-0-00-00-gmt-and-started-at-1611792001-january-28-2021-0-00-01-gmt" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_recent_swaps", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/my_swap_status": [ + { + "text": "my_swap_status", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "my-swap-status" + }, + { + "text": "uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "my-swap-status" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "my-swap-status" + }, + { + "text": "my_swap_status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "my-swap-status" + }, + { + "text": " method returns the data of an atomic swap executed on an Komodo DeFi Framework API node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "my-swap-status" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ------ | ----------------------------------------------------------- |\n| params uuid | string | the uuid of swap, typically received from the buy/sell call |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| events | array of objects | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "SwapEvent", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " object. Events which occurred for a swap. See ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Maker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Taker Events", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " for more info. |\n| success_events | array of strings | a list of events that gained a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " swap state; the contents are listed in the order in which they should occur in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "events", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " array |\n| error_events | array of strings | a list of events that fell into an ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "error", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " swap state; if at least 1 of the events happens, the swap is considered a failure |\n| type | string | whether the node acted as a market ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Taker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " |\n| uuid | string | swap uuid |\n| gui | string (optional) | information about gui; copied from Komodo DeFi Framework API configuration (MM2.json) |\n| mm_version | string (optional) | Komodo DeFi Framework API version |\n| maker_coin | string (optional) | ticker of maker coin |\n| taker_coin | string (optional) | ticker of taker coin |\n| maker_amount | string (numeric, optional) | the amount of coins to be swapped by maker |\n| taker_amount | string (numeric, optional) | the amount of coins to be swapped by taker |\n| my_info | object (optional) | this object maps event data to make displaying swap data in a GUI simpler (", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "my_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "my_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": ", etc.) |\n| recoverable | bool | whether the swap can be recovered using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "recover_funds_of_swap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " API command. Important note: The Komodo DeFi Framework API does not record the state regarding whether the swap was recovered or not. The Komodo DeFi Framework API allows as many calls to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "recover_funds_of_swap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": " method as necessary, in case of errors |\n| my_order_uuid | string (uuid, optional) | the uuid of order that matched to start the swap |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "SwapEvent", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Maker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "Taker Events", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "command" + }, + { + "text": "Successful Taker Swap", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "successful-taker-swap" + }, + { + "text": "Taker Swap Failed with MakerPaymentSpendFailed Event", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "taker-swap-failed-with-maker-payment-spend-failed-event" + }, + { + "text": "Successful Maker Swap", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "successful-maker-swap" + }, + { + "text": "Maker Swap Failed with MakerPaymentTransactionFailed Event", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "maker-swap-failed-with-maker-payment-transaction-failed-event" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_swap_status", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/my_tx_history": [ + { + "text": "my_tx_history", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "my_tx_history (from_id limit=10 max=false page_number)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " method returns the blockchain transactions involving the Komodo DeFi Framework API node's coin address.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "The coin that is used must have ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " set to true in its ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "enable", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " call.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "enable", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "electrum", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin for the history request |\n| limit | number | limits the number of returned transactions; ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " |\n| max | bool | whether to return all available records; defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " |\n| from_id | string | Komodo DeFi Framework API will skip records until it reaches this ID, skipping the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " as well; track the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "internal_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " of the last displayed transaction to find the value of this field for the next page |\n| page_number | number | Komodo DeFi Framework API will return limit swaps from the selected page; This param will be ignored if from_uuid is set. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| transactions | array of objects | transactions data |\n| from_id | string | the from_id specified in the request; this value is null if from_id was not set |\n| skipped | number | the number of skipped records (i.e. the position of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " in the list + 1); this value is 0 if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " was not set |\n| limit | number | the limit that was set in the request; note that the actual number of transactions can differ from the specified limit (e.g. on the last page) |\n| total | number | the total number of transactions available |\n| page_number | number | the page_number that was set in the request |\n| total_pages | number | total pages available with the selected limit |\n| current_block | number | the number of the latest block of coin blockchain |\n| sync_status | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " object. Provides the information that helps to track the progress of transaction history preloading at background |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "command" + }, + { + "text": "Command (max = true)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "command-max-true" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-error" + }, + { + "text": "Response (History too large in electrum mode)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-history-too-large-in-electrum-mode" + }, + { + "text": "Response (Sync in progress for UTXO coins)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-sync-in-progress-for-utxo-coins" + }, + { + "text": "Response (Sync in progress for ETH/ERC20 coins)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-sync-in-progress-for-eth-erc-20-coins" + }, + { + "text": "Response (Successful result in case of ETH/ERC20 coins)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/my_tx_history", + "closestElementReference": "response-successful-result-in-case-of-eth-erc-20-coins" + } + ], + "komodo-defi-framework/api/legacy/order_status": [ + { + "text": "order_status", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "order_status uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "order_status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": " method returns the data of the order with the selected ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": " created by the Komodo DeFi Framework API node. The response is different for ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "taker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": " orders.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "order-status" + }, + { + "text": "Argument", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "argument" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------ |\n| uuid | string | uuid of order to display |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "argument" + }, + { + "text": "Command", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "command" + }, + { + "text": "Response (No order found)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-no-order-found" + }, + { + "text": "Maker Order Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------- |\n| type | string | type of the order (\"Maker\" or \"Taker\") |\n| order | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response" + }, + { + "text": "OrderStatusData", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response" + }, + { + "text": " object. |\n| base_orderbook_ticker | string | The orderbook ticker for base coin. This field is used to group segwit and non-segwit versions of UTXO coins. |\n| rel_orderbook_ticker | string | The orderbook ticker for rel coin. This field is used to group segwit and non-segwit versions of UTXO coins. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response" + }, + { + "text": "OrderStatusData", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response" + }, + { + "text": "📌 Maker Order Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-examples" + }, + { + "text": "Maker Order Response (Cancelled order from history)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "maker-order-response-cancelled-order-from-history" + }, + { + "text": "Response: Taker Orders", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-orders" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------- |\n| type | string | type of the order (\"Maker\" or \"Taker\") |\n| order | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-orders" + }, + { + "text": "OrderStatusData", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-orders" + }, + { + "text": " object. |\n| base_orderbook_ticker | string | The orderbook ticker for base coin. This field is used to group segwit and non-segwit versions of UTXO coins. |\n| rel_orderbook_ticker | string | The orderbook ticker for rel coin. This field is used to group segwit and non-segwit versions of UTXO coins. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-orders" + }, + { + "text": "OrderStatusData", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-orders" + }, + { + "text": "📌 Taker Order Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "taker-order-examples" + }, + { + "text": "Response: Taker Order Fullfilled", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-taker-order-fullfilled" + }, + { + "text": "Response: 'FillOrKill' Taker order after timeout with no match", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/order_status", + "closestElementReference": "response-fill-or-kill-taker-order-after-timeout-with-no-match" + } + ], + "komodo-defi-framework/api/legacy/orderbook": [ + { + "text": "orderbook", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "orderbook base rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "orderbook", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": " method requests from the network the currently available orders for the specified trading pair.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------------------------- |\n| base | string | Base currency of a pair |\n| rel | string | Related currency, also known as the \"quote currency\" |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| asks | array of objects | An array of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " objects containing outstanding asks |\n| bids | array of objects | An array of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " objects containing outstanding bids |\n| numasks | number | the number of outstanding asks |\n| numbids | number | the number of outstanding bids |\n| base | string | the name of the coin the user desires to receive |\n| rel | string | the name of the coin the user will trade |\n| timestamp | number | the timestamp of the orderbook request |\n| netid | number | the id of the network on which the request is made (default is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": ") |\n| total_asks_base_vol | string (decimal) | the base volumes sum of all asks |\n| total_asks_base_vol_rat | rational | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_asks_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_asks_base_vol_fraction | fraction | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_asks_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_asks_rel_vol | string (decimal) | the rel volumes sum of all asks |\n| total_asks_rel_vol_rat | rational | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_asks_rel_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_asks_rel_vol_fraction | fraction | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_asks_rel_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_base_vol | string (decimal) | the base volumes sum of all bids |\n| total_bids_base_vol_rat | rational | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_bids_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_base_vol_fraction | fraction | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_bids_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_rel_vol | string (decimal) | the rel volumes sum of all bids |\n| total_bids_rel_vol_rat | rational | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_bids_rel_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_rel_vol_fraction | fraction | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "total_bids_rel_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/orderbook_depth": [ + { + "text": "orderbook_depth", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "orderbook-depth" + }, + { + "text": "orderbook_depth pairs", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "orderbook-depth" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "orderbook-depth" + }, + { + "text": "orderbook_depth", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "orderbook-depth" + }, + { + "text": " method returns the number of asks and bids for the specified trading pairs.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "orderbook-depth" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----- | ------------------------- |\n| pairs | array | an array of trading pairs |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "The pairs in the response are not guaranteed to be in the order of pairs in the request.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | -------------------- | ------------------------------ |\n| result | array of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "PairDepth", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": " | an array of pair depth objects |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "Where ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "PairDepth", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": " object structure is as follows", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------- | ------------------ | ------------------ |\n| pair | array of 2 strings | the orderbook pair |\n| depth.asks | number | the number of asks |\n| depth.bids | number | the number of bids |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orderbook_depth", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/orders_history_by_filter": [ + { + "text": "orders_history_by_filter", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "orders-history-by-filter" + }, + { + "text": "orders_history_by_filter (order_type initial_action base rel from_price to_price from_volume to_volume from_timestamp to_timestamp was_taker status include_details)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "orders-history-by-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "orders-history-by-filter" + }, + { + "text": "orders_history_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "orders-history-by-filter" + }, + { + "text": " method returns all orders whether active or inactive that match the selected filters. Please note that all filters (order_type initial_action, etc.) are combined using logical AND.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "orders-history-by-filter" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| order_type | string | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order_type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "; ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order_type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " can be \"Maker\" or \"Taker\" |\n| initial_action | string | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "initial_action", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "; ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "initial_action", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " can be \"Sell\" or \"Buy\". Note that maker order ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "initial_action", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " is considered \"Sell\" |\n| base | string | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.base = base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| rel | string | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.rel = rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| from_price | varies | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.price >= from_price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| to_price | varies | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.price <= to_price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| from_volume | varies | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.volume >= from_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| to_volume | varies | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.volume <= to_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| from_timestamp | integer | Timestamp in UNIX format. Return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.created_at >= from_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| to_timestamp | number | Timestamp in UNIX format. return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "order.created_at <= to_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " condition |\n| was_taker | bool | return only ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " orders that got converted from ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "taker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " |\n| status | string | return only orders that match the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "; ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "status", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " can be: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "For active maker order ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Created", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Updated", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "For active taker order ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Created", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "For inactive maker order ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Fulfilled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Insufficient Balance", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Cancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "For inactive taker order ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Fulfilled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Timed Out", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Cancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": " |\n| include_details | bool | whether to include complete order details in response; defaults to false |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| orders | array of order objects | Array of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "OrderSummaryData", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": " that match the selected filters. |\n| details | array | array of complete order details for every order that matches the selected filters; returns ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "[]", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": " if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "include_details", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": " is false or not included in the |\n| details.type | string | type of the order; \"Maker\" or \"Taker\" |\n| details.order | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": " objects containing outstanding asks |\n| found_records | number | the number of returned orders |\n| warnings | array | array containing warnings objects |\n| warnings.uuid | string | uuid of the order that produced this warning |\n| warnings.warning | string | warning message |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "OrderSummaryData", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "OrderDataV1", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "examples" + }, + { + "text": "Command (select orders from history that have order_type = Taker and initial_action = Buy)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "command-select-orders-from-history-that-have-order-type-taker-and-initial-action-buy" + }, + { + "text": "Command (select orders from history that have base = DOC and rel = MARTY)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "command-select-orders-from-history-that-have-base-doc-and-rel-marty" + }, + { + "text": "Command (select orders from history that have base = DOC and price >= 1 and volume ", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "1" + }, + { + "text": " 1)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "1" + }, + { + "text": "Command (select orders from history that was_taker and created_at >= 1611705600 (January 27, 2021 0:00:00 GMT))", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "command-select-orders-from-history-that-was-taker-and-created-at-1611705600-january-27-2021-0-00-00-gmt" + }, + { + "text": "Command (select orders with details from history that was cancelled because it timed-out)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "command-select-orders-with-details-from-history-that-was-cancelled-because-it-timed-out" + }, + { + "text": "Response (orders only)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response-orders-only" + }, + { + "text": "Response (details included)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response-details-included" + }, + { + "text": "Response (warning - uuid could not be parsed)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/orders_history_by_filter", + "closestElementReference": "response-warning-uuid-could-not-be-parsed" + } + ], + "komodo-defi-framework/api/legacy/rational_number_note": [ + { + "text": "Note About Rational Number Type", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "The Komodo DeFi Framework API now offers the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "num-rational crate", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " feature. This is used to represent order volumes and prices.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "num-rational crate", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "Komodo highly recommends that the developer use the rational number type when calculating an order's price and volume. This avoids rounding and precision errors when calculating numbers, such as ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "1/3", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": ", as these cannot be represented as a finite decimal.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "The Komodo DeFi Framework API typically will return both the rational number type as well as the decimal representation, but the decimal representation should be considered only a convenience feature for readability.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "The number can be represented in the following two JSON formats:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "As a fraction object that contains a numerator and a denominator as numeric strings, as follows:", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "As a unique format supplied by the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "num-rational", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " crate:", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "In the above unique format, the first item ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "[1,[0,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " is the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "numerator", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " and the second item ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "[1,[1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " is the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "denominator", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "numerator", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "denominator", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " are BigInteger numbers represented as a sign and a uint32 array (where numbers are 32-bit parts of big integer in little-endian order).", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "[1,[0,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " represents ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "+0000000000000000000000000000000010000000000000000000000000000000", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " = ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "4294967296", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "[-1,[1,1]]", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " represents ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "-1000000000000000000000000000000010000000000000000000000000000000", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": " = ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + }, + { + "text": "-4294967297", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/rational_number_note", + "closestElementReference": "note-about-rational-number-type" + } + ], + "komodo-defi-framework/api/legacy/recover_funds_of_swap": [ + { + "text": "recover_funds_of_swap", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "recover_funds_of_swap uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "In certain cases, a swap can finish with an error wherein the user's funds are stuck on the swap-payment address. (This address is the P2SH address when executing on a utxo-based blockchain, or an etomic-swap smart contract when executing on an ETH/ERC20 blockchain.)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "This error can occur when one side of the trade does not follow the protocol (for any reason). The error persists as attempts to refund the payment fail due to network connection issues between the Komodo DeFi Framework API node and the coin's RPC server.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "In this scenario, the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "recover_funds_of_swap", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": " method instructs the Komodo DeFi Framework API software to attempt to reclaim the user funds from the swap-payment address, if possible.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "recover-funds-of-swap" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------- |\n| uuid | string | uuid of the swap to recover the funds |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------------------------------------------------------- |\n| action | string | the action executed to unlock the funds. Can be either ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": "SpentOtherPayment", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": "RefundedMyPayment", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": " |\n| coin | string | the balance of this coin will be unstuck by the recovering transaction |\n| tx_hash | string | the hash of the recovering transaction |\n| tx_hex | string | raw bytes of the recovering transaction in hexadecimal representation |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "command" + }, + { + "text": "Response (success - SpentOtherPayment)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response-success-spent-other-payment" + }, + { + "text": "Response (success - RefundedMyPayment)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response-success-refunded-my-payment" + }, + { + "text": "Response (error - maker payment was already spent)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response-error-maker-payment-was-already-spent" + }, + { + "text": "Response (error - swap is not finished yet)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/recover_funds_of_swap", + "closestElementReference": "response-error-swap-is-not-finished-yet" + } + ], + "komodo-defi-framework/api/legacy/sell": [ + { + "text": "sell", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "sell base rel price volume (match_by order_type base_confs base_nota rel_confs rel_nota)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " method issues a sell request and attempts to match an order from the orderbook based on the provided arguments.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "Buy and sell methods always create the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "taker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " order first. A ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "taker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " order must pay a ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "dexfee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " during the swap as it is taking liquidity from the market. The ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "dexfee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " is calculated as \"the greater of either ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "Minimum transaction amount (dust) TAKER COIN", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "0.0001 TAKER COIN", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "1/777th", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " the size of the desired order\". If your ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "GoodTillCancelled", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " order is not matched in 30 seconds, the order is automatically converted to a ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "maker", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " request and stays on the orderbook until the request is matched or cancelled. To always act as a maker, please use the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "setprice", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " method.", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "setprice", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "To prevent a user from making trades in which the transaction fees may end up costing a significant portion of the value of the trade, we have set a lower limit to the value of a trade. See the description of the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "volume", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": " argument for more info.", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "sell" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base | string | the name of the coin the user desires to sell |\n| rel | string | the name of the coin the user desires to receive |\n| price | varies | The price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to pay per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " coin. Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| volume | varies | The amount of coins the user is willing to receive of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " coin; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": ". . Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| min_volume | varies (optional) | The amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " coin that will be used as ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " order after conversion to maker; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": ". . Can be a numeric string, expressed using standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " objects. |\n| match_by | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "MatchBy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " object, to filter to include only matches by pubkey or uuid. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "Important:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " This condition is not applied after a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " order is converted to a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " request. |\n| order_type | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "OrderType", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " object. |\n| base_confs | number | number of required blockchain confirmations for base coin atomic swap transaction; default to base coin configuration if not set |\n| base_nota | bool | whether dPoW notarization is required for base coin atomic swap transaction; default to base coin configuration if not set |\n| rel_confs | number | number of required blockchain confirmations for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| rel_nota | bool | whether dPoW notarization is required for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| save_in_history | boolean | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": ". If set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": " no order history will be saved (though order status will be temporarily stored while in progress). If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": ", each order's short record history is stored in a local SQLite database table, and when the order is cancelled or fully matched, it's history will be saved as a json file |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "FractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "MatchBy", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "OrderType", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| action | string | the action of the request (", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "Sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": ") |\n| base | string | the base currency of the request |\n| base_amount | numeric string | the resulting amount of base currency that is sold if the order matches, represented as a decimal value. |\n| base_amount_rat | rational | the resulting amount of base currency that is sold if the order matches, represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " object. |\n| rel | string | the rel currency of the request |\n| rel_amount | string | the minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " coin that must be received in order to sell the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "base_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " (according to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": ", in decimal representation) |\n| rel_amount_rat | rational | the minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " coin that must be received in order to sell the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "base_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " (according to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": ", represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " object). |\n| method | string | this field is used for internal P2P interactions; the value is always equal to \"request |\n| dest_pub_key | string | reserved for future use. The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "dest_pub_key", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " allows the user to choose the P2P node that is eligible to match with the request. This value defaults to \"zero pubkey\", meaning that ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "anyone", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " can match |\n| sender_pubkey | string | the public key of our node |\n| uuid | string | the request uuid |\n| match_by | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "MatchBy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " object, to filter to include only matches by pubkey or uuid. ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "Important:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " This condition is not applied after a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "GoodTillCancelled", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " order is converted to a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " request. |\n| conf_settings | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " object. |\n| base_orderbook_ticker | string | the ticker of the base currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " is configured for the base currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |\n| rel_orderbook_ticker | string | the ticker of the rel currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " is configured for the rel currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "MatchBy", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "examples" + }, + { + "text": "Command (decimal representation)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-decimal-representation" + }, + { + "text": "Command (rational representation in num-rational crate format)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-rational-representation-in-num-rational-crate-format" + }, + { + "text": "Command (rational representation as a fraction object)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-rational-representation-as-a-fraction-object" + }, + { + "text": "Command (with confirmations and notarization settings)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-with-confirmations-and-notarization-settings" + }, + { + "text": "Command (set to not save order history)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-set-to-not-save-order-history" + }, + { + "text": "Command (GoodTillCancelled type)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-good-till-cancelled-type" + }, + { + "text": "Command (FillOrKill type)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-fill-or-kill-type" + }, + { + "text": "Command (match by Any)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-match-by-any" + }, + { + "text": "Command (match by Pubkeys)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-match-by-pubkeys" + }, + { + "text": "Command (match by Orders)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "command-match-by-orders" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/sell", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/send_raw_transaction": [ + { + "text": "send_raw_transaction", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "send-raw-transaction" + }, + { + "text": "send_raw_transaction coin tx_hex", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "send-raw-transaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "send-raw-transaction" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "send-raw-transaction" + }, + { + "text": " method broadcasts the transaction to the network of selected coin.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "send-raw-transaction" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin network on which to broadcast the transaction |\n| tx_hex | string | the transaction bytes in hexadecimal format; this is typically generated by the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": " method |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------- |\n| tx_hash | string | the hash of the broadcast transaction |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/send_raw_transaction", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/set_required_confirmations": [ + { + "text": "set_required_confirmations", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "set_required_confirmations coin confirmations", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "set_required_confirmations", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": " method sets the number of confirmations for which Komodo DeFi Framework API must wait for the selected coin.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "This setting is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "not", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": " persistent. The value must be reset in the coins file on restart.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "set-required-confirmations" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ------ | -------------------------------------- |\n| coin | string | the ticker of the selected coin |\n| confirmations | number | the number of confirmations to require |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ------ | ------------------------------------------ |\n| coin | string | the coin selected in the request |\n| confirmations | number | the number of confirmations in the request |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_required_confirmations", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/set_requires_notarization": [ + { + "text": "set_requires_notarization", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "set_requires_notarization coin requires_notarization", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "set_requires_notarization", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": " method indicates whether Komodo DeFi Framework API must wait for a dPoW notarization of the given atomic swap transactions.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "This setting is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "not", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": " persistent. The value must be reset in the coins file on restart.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "set-requires-notarization" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------- | ------ | ------------------------------------------------------------------------------ |\n| coin | string | the ticker of the selected coin |\n| requires_notarization | bool | whether the node should wait for dPoW notarization of atomic swap transactions |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------- | ------ | ---------------------------------------------------------------------------------- |\n| coin | string | the coin selected in the request |\n| requires_notarization | bool | whether the node must wait for a dPoW notarization of the atomic swap transactions |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/set_requires_notarization", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/legacy/setprice": [ + { + "text": "setprice", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "setprice base rel price (volume max cancel_previous=true base_confs base_nota rel_confs rel_nota min_volume)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": " method places an order on the orderbook, and it relies on this node acting as a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": ", also called a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "Bob", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": " node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": " order is always considered a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": ", for internal implementation convenience.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "To prevent a user from making trades in which the transaction fees may end up costing a significant portion of the value of the trade, we have set a lower limit to the value of a trade. See the description of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": " arguments for more info.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "setprice" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base | string | the name of the coin the user desires to sell |\n| rel | string | the name of the coin the user desires to receive |\n| price | numeric string or rational | the price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to receive per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " coin |\n| volume | numeric string or rational | the maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " coin available for the order, ignored if max is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " |\n| min_volume | numeric string or rational | the minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " coin available for the order; it must be less or equal than ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " param; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " |\n| max | bool | Komodo DeFi Framework API will use the entire coin balance for the order, taking ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "0.001", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " coins into reserve to account for fees |\n| cancel_previous | bool | Komodo DeFi Framework API will cancel all existing orders for the selected pair by default; set this value to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " to prevent this behavior |\n| base_confs | number | number of required blockchain confirmations for base coin atomic swap transaction; default to base coin configuration if not set |\n| base_nota | bool | whether dPoW notarization is required for base coin atomic swap transaction; default to base coin configuration if not set |\n| rel_confs | number | number of required blockchain confirmations for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| rel_nota | bool | whether dPoW notarization is required for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| save_in_history | boolean | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": ". If set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": " no order history will be saved (though order status will be temporarily stored while in progress). If ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": ", each order's short record history is stored in a local SQLite database table, and when the order is cancelled or fully matched, it's history will be saved as a json file |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | object | the resulting order object |\n| base | string | the base coin of the order |\n| rel | string | the rel coin of the order |\n| price | string (numeric) | the expected amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " coin to be received per 1 unit of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " coin; decimal representation |\n| price_rat | rational | the expected amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " coin to be received per 1 unit of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " coin; rational representation |\n| max_base_vol | string (numeric) | the maximum volume of base coin available to trade; decimal representation |\n| max_base_vol_rat | rational | the maximum volume of base coin available to trade; rational representation |\n| min_base_vol | string (numeric) | Komodo DeFi Framework API won't match with other orders that attempt to trade less than ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "min_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "; decimal representation |\n| min_base_vol_rat | rational | Komodo DeFi Framework API won't match with other orders that attempt to trade less than ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "min_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "; rational representation |\n| created_at | number | unix timestamp in milliseconds, indicating the order creation time |\n| updated_at | number | unix timestamp in milliseconds, indicating the order update time |\n| matches | object | contains the map of ongoing matches with other orders, empty as the order was recently created |\n| started_swaps | array of strings | uuids of swaps that were initiated by the order |\n| uuid | string | uuid of the created order |\n| conf_settings | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " object. |\n| base_orderbook_ticker | string | the ticker of the base currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " is configured for the base currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |\n| rel_orderbook_ticker | string | the ticker of the rel currency if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " is configured for the rel currency in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": " file. If not defined, will return a null value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "examples" + }, + { + "text": "Command (with volume)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-with-volume" + }, + { + "text": "Command (max = true)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-max-true" + }, + { + "text": "Command (rational representation in num-rational crate format)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-rational-representation-in-num-rational-crate-format" + }, + { + "text": "Command (rational representation as fraction object)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-rational-representation-as-fraction-object" + }, + { + "text": "Command (with min_volume)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-with-min-volume" + }, + { + "text": "Command (with confirmations and notarization settings)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-with-confirmations-and-notarization-settings" + }, + { + "text": "Command (set to not save order history)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "command-set-to-not-save-order-history" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/setprice", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/show_priv_key": [ + { + "text": "show_priv_key", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "show_priv_key coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "show_priv_key", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": " method returns the private key of the specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": " in a format compatible with ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": " wallets.\nThe output can be used for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "importprivkey", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": " method (UTXO coins) or as a private key for MyEtherWallet (ETH/ERC20).", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "show-priv-key" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------------------------- |\n| coin | string | the name of the coin of the private key to show |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------- |\n| coin | string | the name of the coin |\n| priv_key | string | the private key of the coin |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "command" + }, + { + "text": "Response (UTXO WIF)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "response-utxo-wif" + }, + { + "text": "Response (0x-prefixed ETH private key)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/show_priv_key", + "closestElementReference": "response-0x-prefixed-eth-private-key" + } + ], + "komodo-defi-framework/api/legacy/stop": [ + { + "text": "stop", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "stop" + }, + { + "text": "stop()", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "stop" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "stop" + }, + { + "text": "stop", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "stop" + }, + { + "text": " method stops the Komodo DeFi Framework API software.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "stop" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/stop", + "closestElementReference": "response" + } + ], + "komodo-defi-framework/api/legacy/trade_preimage": [ + { + "text": "trade_preimage", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "**trade_preimage (deprecated) **", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " method returns the approximate fee amounts that are paid per the whole swap.\nDepending on the parameters, the function returns different results:", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "If the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", then the result will include the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " and the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "fee_to_send_taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".\nThe ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " amount is paid from the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "base", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " coin balance if the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", else it is paid from the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "rel", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " coin balance;", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "If the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " field is true, then the result will include the ", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "This method can be used instead of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max_taker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " field is true and the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".\nUse the resulting ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " as an argument of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " requests.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " request with ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method = \"setprice\"", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " arguments to approximate the fee amounts ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "only", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ". Do not use the resulting ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " as an argument of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "This function is deprecated. Please consider using ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage v2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " instead.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage v2.0", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n| base | string | the base currency of the request |\n| rel | string | the rel currency of the request |\n| swap_method | string | the name of the method whose preimage is requested. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " |\n| price | numeric string or rational | the price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to pay per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " coin |\n| volume | numeric string or rational (optional) | the amount the user is willing to trade; ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "and", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "swap_method = setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", otherwise, it must be set |\n| max | bool (optional) | whether to return the maximum available volume for ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " method; must not be set or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | object | an object containing the relevant information |\n| base_coin_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object. The approximate miner fee is paid per the whole swap concerning the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " coin |\n| rel_coin_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object. The approximate miner fee is paid per the whole swap concerning the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " coin |\n| volume | string (numeric) | Optional. The max available volume that can be traded (in decimal representation); empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " argument is missing or false |\n| volume_rat | rational | Optional. The max available volume that can be traded represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object.; empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " argument is missing or false |\n| volume_fraction | fraction | Optional. The max available volume that can be traded represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "fractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object.; empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " argument is missing or false |\n| taker_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object. The dex fee to be paid by Taker; empty if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " |\n| fee_to_send_taker_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object. The approximate miner fee is paid to send the dex fee; empty if ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " |\n| total_fees | array of objects | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "TotalFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": " object. Each element is a sum of fees required to be paid from user's balance of corresponding ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo.coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "; the elements are unique by coin |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "fractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "TotalFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "examples" + }, + { + "text": "Command (setprice)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "command-setprice" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response-2" + }, + { + "text": "Command (buy)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "command-buy" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response-3" + }, + { + "text": "Command (ERC20 and QRC20)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "command-erc-20-and-qrc-20" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/trade_preimage", + "closestElementReference": "response-4" + } + ], + "komodo-defi-framework/api/legacy/unban_pubkeys": [ + { + "text": "unban_pubkeys", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "unban_pubkeys type data", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "unban_pubkeys", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": " method will remove all currently banned pubkeys from your ban list, or specific pubkeys from a user defined list.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "Use the secp256k1 pubkey without prefix for this method input. E.g. if pubkey is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "022cd3021a2197361fb70b862c412bc8e44cff6951fa1de45ceabfdd9b4c520420", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": " you should submit ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "2cd3021a2197361fb70b862c412bc8e44cff6951fa1de45ceabfdd9b4c520420", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "unban-pubkeys" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ------ | -------------------------------------------------------------------------- |\n| pubkey | string | the pubkey to ban |\n| unban_by.type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "All", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": " to unban all pubkeys, or ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "Few", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": " to provide a list of pubkeys to unban |\n| unban_by.data | list | A list of pubkeys to unbanned. Only required when ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "Few", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| still_banned | list | List of pubkeys which remain banned. For each ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": ", the reason it was banned ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey.reason", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": " and the type of of ban ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey.type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": " is also returned. |\n| unbanned | list | List of pubkeys which were unbanned. For each ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": ", the reason it was banned ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey.reason", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": " and the type of of ban ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "pubkey.type", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": " is also returned. |\n| were_not_banned | list | If using ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "unban_by.type: Few", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": " this will return a list of pubkeys which were not banned, but had been requested to be unbanned. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response-success" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "command-2" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/unban_pubkeys", + "closestElementReference": "response-success-2" + } + ], + "komodo-defi-framework/api/legacy/update_maker_order": [ + { + "text": "update_maker_order", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "update_maker_order uuid (new_price volume_delta max base_confs base_nota rel_confs rel_nota min_volume)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "update_maker_order", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": " method updates an active order on the orderbook created before by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": ", and it relies on this node acting as a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "maker", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": ", also called a ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "Bob", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": " node.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "To prevent a user from making trades in which the transaction fees may end up costing a significant portion of the value of the trade, we have set a lower limit to the value of a trade. See the description of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "volume_delta", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": " arguments for more info.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "update-maker-order" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| uuid | string | the uuid of the order the user desires to update |\n| new_price | numeric string or rational (optional) | the price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to receive per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " coin |\n| volume_delta | numeric string or rational (optional) | volume added to or subtracted from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "max_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " of the order to be updated, resulting in the new volume which is the maximum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " coin available for the order, ignored if max is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "the new volume which is the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "max_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " of the order to be updated plus ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "volume_delta", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "the product of the new volume and the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "new_price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " |\n| min_volume | numeric string or rational (optional) | the minimum amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " coin available for the order; it must be less or equal than the new volume; the following values must be greater than or equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "min_trading_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " of the corresponding coin: ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "the argument ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "the product of the arguments ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "min_volume", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "new_price", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " |\n| max | bool (optional) | Komodo DeFi Framework API will use the entire coin balance for the order, taking ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "0.001", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": " coins into reserve to account for fees |\n| base_confs | number (optional) | number of required blockchain confirmations for base coin atomic swap transaction; default to base coin configuration if not set |\n| base_nota | bool (optional) | whether dPoW notarization is required for base coin atomic swap transaction; default to base coin configuration if not set |\n| rel_confs | number (optional) | number of required blockchain confirmations for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| rel_nota | bool (optional) | whether dPoW notarization is required for rel coin atomic swap transaction; default to rel coin configuration if not set |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| base | string | the base coin of the order |\n| rel | string | the rel coin of the order |\n| price | string (numeric) | the expected amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": " coin to be received per 1 unit of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": " coin; decimal representation |\n| price_rat | rational | the expected amount of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": " coin to be received per 1 unit of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": " coin; rational representation |\n| max_base_vol | string (numeric) | the maximum volume of base coin available to trade; decimal representation |\n| max_base_vol_rat | rational | the maximum volume of base coin available to trade; rational representation |\n| min_base_vol | string (numeric) | Komodo DeFi Framework API won't match with other orders that attempt to trade less than ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "min_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "; decimal representation |\n| min_base_vol_rat | rational | Komodo DeFi Framework API won't match with other orders that attempt to trade less than ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "min_base_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "; rational representation |\n| created_at | number | unix timestamp in milliseconds, indicating the order creation time |\n| updated_at | number | unix timestamp in milliseconds, indicating the order update time |\n| matches | object | contains the map of ongoing matches with other orders, empty as the order was recently created |\n| started_swaps | array of strings | uuids of swaps that were initiated by the order |\n| uuid | string | uuid of the updated order |\n| conf_settings | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "ConfSettings", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "examples" + }, + { + "text": "Command (with volume)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-with-volume" + }, + { + "text": "Command (max = true)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-max-true" + }, + { + "text": "Command (rational representation in num-rational crate format)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-rational-representation-in-num-rational-crate-format" + }, + { + "text": "Command (rational representation as fraction object)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-rational-representation-as-fraction-object" + }, + { + "text": "Command (with min_volume)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-with-min-volume" + }, + { + "text": "Command (with confirmations and notarization settings)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "command-with-confirmations-and-notarization-settings" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/update_maker_order", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/legacy/validateaddress": [ + { + "text": "validateaddress", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress coin address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "validateaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "validateaddress" + }, + { + "text": " method checks if an input string is a valid address of the specified coin.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "validateaddress" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------- |\n| coin | string | the coin to validate address for |\n| address | string | the input string to validate |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----------------- | ------------------------------------------------------------------------------ |\n| is_valid | bool | Whether input string is a valid coin address. |\n| reason | string (optional) | Only present if not valid. The reason why input string is not a valid address. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "command" + }, + { + "text": "Response (valid address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "response-valid-address" + }, + { + "text": "Response (invalid cash address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "response-invalid-cash-address" + }, + { + "text": "Response (invalid ETH address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/validateaddress", + "closestElementReference": "response-invalid-eth-address" + } + ], + "komodo-defi-framework/api/legacy/version": [ + { + "text": "version", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "version" + }, + { + "text": "version()", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "version" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "version" + }, + { + "text": "version", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "version" + }, + { + "text": " method returns the Komodo DeFi Framework API version.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "version" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------- |\n| result | string | the Komodo DeFi Framework API version |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/version", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/legacy/withdraw": [ + { + "text": "withdraw", + "tagName": "h1", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "withdraw coin to (amount max)", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " method generates, signs, and returns a transaction that transfers the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "amount", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " to the address indicated in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "to", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " argument.", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "This method generates a raw transaction which should then be broadcast using ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin the user desires to withdraw |\n| to | string | coins are withdrawn to this address |\n| amount | string (numeric) | the amount the user desires to withdraw, ignored when ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "max=true", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| max | bool | withdraw the maximum available amount |\n| fee | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "FeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| from | array of strings | coins are withdrawn from this address; the array contains a single element, but transactions may be sent from several addresses (UTXO coins) |\n| to | array of strings | coins are withdrawn to this address; this may contain the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " address, where change from UTXO coins is sent |\n| my_balance_change | string (numeric) | the expected balance of change in ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " after the transaction broadcasts |\n| received_by_me | string (numeric) | the amount of coins received by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " after the transaction broadcasts; the value may be above zero when the transaction requires that the Komodo DeFi Framework API send change to ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " |\n| spent_by_me | string (numeric) | the amount of coins spent by ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "; this value differ from the request amount, as the transaction fee is added here |\n| total_amount | string (numeric) | the total amount of coins transferred |\n| fee_details | object | the fee dsetails of the generated transaction; this value differs for utxo and ETH/ERC20 coins, check the examples for more details |\n| tx_hash | string | the hash of the generated transaction |\n| tx_hex | string | transaction bytes in hexadecimal format; use this value as input for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " method |\n| coin | string | the name of the coin the user wants to withdraw |\n| kmd_rewards | object (optional) | an object containing information about accrued rewards; always exists if the coin is ", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "KMD", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": " |\n| kmd_rewards.amount | string (numeric, optional) | the amount of accrued rewards |\n| kmd_rewards.claimed_by_me | bool (optional) | whether the rewards been claimed by me |", + "tagName": "p", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "examples" + }, + { + "text": "Withdraw UTXO based coins", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-utxo-based-coins" + }, + { + "text": "Response (KMD success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-kmd-success" + }, + { + "text": "Withdraw UTXO based-coins with fixed fee", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-utxo-based-coins-with-fixed-fee" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - attempt to use EthGas for UTXO coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-error-attempt-to-use-eth-gas-for-utxo-coin" + }, + { + "text": "Withdraw UTXO based coins with custom fee per kbyte", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-utxo-based-coins-with-custom-fee-per-kbyte" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success-2" + }, + { + "text": "Response (error - attempt to use EthGas for UTXO coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-error-attempt-to-use-eth-gas-for-utxo-coin-2" + }, + { + "text": "Withdraw ETH/ERC20 and other ETH-based forks", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-eth-erc-20-and-other-eth-based-forks" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success-3" + }, + { + "text": "Withdraw ETH/ERC20, and other ETH-based forks with gas limit", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-eth-erc-20-and-other-eth-based-forks-with-gas-limit" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success-4" + }, + { + "text": "Response (error - attempt to use UtxoFixed or UtxoPerKbyte for ETH coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-error-attempt-to-use-utxo-fixed-or-utxo-per-kbyte-for-eth-coin" + }, + { + "text": "Withdraw Max", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-max" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success-5" + }, + { + "text": "Withdraw QRC20", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-qrc-20" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "response-success-6" + }, + { + "text": "Withdraw QRC20 with gas limit", + "tagName": "h4", + "path": "komodo-defi-framework/api/legacy/withdraw", + "closestElementReference": "withdraw-qrc-20-with-gas-limit" + } + ], + "komodo-defi-framework/api/v20/add_delegation": [ + { + "text": "add_delegation", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "add_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": " method initiates your node's staking of a compatible coin. Currently QTUM and tQTUM (test tokens avalable at ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "https://testnet-faucet.qtum.info/", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": ") have been integrated, but this functionality will be expanded to more coins in future.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "Note: Only UTXOs of 100 QTUM / tQTUM will be actively staked. It is recomended to consolidate your balance into a single UTXO before initiating delegated staking. After running ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "add_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": ", you will need to broadcast the returned hex via ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": " to complete the process. Staking will only work with legacy QTUM addresses (segwit addresses are not supported).", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "add-delegation" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------ | ------ | ---------------------------- |\n| coin | string | the coin being staked |\n| staking_details.type | string | the protocol being staked |\n| staking_details.address | string | the delegated staker address |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - already delegating)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_delegation", + "closestElementReference": "response-error-already-delegating" + } + ], + "komodo-defi-framework/api/v20/add_node_to_version_stat": [ + { + "text": "add_node_to_version_stat", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": "add_node_to_version_stat", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": " method adds a Node's name, IP address and PeerID to a local database to track which version of MM2 it is running. The name parameter is an arbitrary identifying string, such as \"seed_alpha\" or \"dragonhound_DEV\". The address parameter is the node's IP address or domain names. The Peer ID can be found in the MM2 log file after a connection has been initiated, and looks like the below:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": "07 09:33:58, atomicdex_behaviour:610] INFO Local peer id: PeerId(\"12D3KooWReXsTVCKGAna1tzrD1jaUttTSs17ULFuvvzoGD9bqmmA\") ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": "Note: To allow collection of version stats, added nodes must open ports 42845 (tcp) and 42855 (ws).", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "add-node-to-version-stat" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------- |\n| name | string | the name assigned to the node |\n| address | string | the IP address of the node |\n| peer_id | string | the node's unique Peer ID |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - peer id already in database)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "response-error-peer-id-already-in-database" + }, + { + "text": "Response (error - name already in database)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "response-error-name-already-in-database" + }, + { + "text": "Response (error - invalid Peer ID)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/add_node_to_version_stat", + "closestElementReference": "response-error-invalid-peer-id" + } + ], + "komodo-defi-framework/api/v20/best_orders": [ + { + "text": "best_orders", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "best_orders", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": " method returns the best priced trades available on the orderbook. There are two options for the request, either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": ".\nIf request is made by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": ", the returned results will show the best prices for trades that can fill the requested volume.\nIf request is made by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": ", the returned results will show a list of the best prices, ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": " pairs long (e.g. top 5 best priced orders).\nFor coins with segwit, they may appear twice in the output (once for each address). E.g. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "LTC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "LTC-segwit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "The response of this method can contain coins that are not activated on the Komodo DeFi Framework API instance.\nActivation will be required to proceed with the trade.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "best-orders" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------- | ------ | ----------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin to get best orders |\n| action | string | Whether to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " the selected coin |\n| exclude_mine | bool | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": ", the users orders will be excluded from the response. |\n| request_by | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "RequestBy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "RequestBy", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| orders | object (map) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": "ticker -> array of standard [OrderData](/komodo-defi-framework/api/common_structures/orders/#order-data) objects", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": " map |\n| original_tickers | list (string) | Tickers included in response when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": "orderbook_ticker", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": " is configured for the queried coin in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": " file |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "examples" + }, + { + "text": "Command (by number)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "command-by-number" + }, + { + "text": "Response (by number - success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response-by-number-success" + }, + { + "text": "Command (by number, exclude own orders)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "command-by-number-exclude-own-orders" + }, + { + "text": "Response (by number - success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response-by-number-success-2" + }, + { + "text": "Command (by volume)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "command-by-volume" + }, + { + "text": "Response (by volume - success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "response-by-volume-success" + }, + { + "text": "Error Responses", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "InvalidRequest", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " - Invalid type (", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "number", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " value must be integer)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "InvalidRequest", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " - Invalid type (type must be either ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "volume", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "number", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": ", action mut be either ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "buy", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "sell", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": ")", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "CoinIsWalletOnly", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " - Wallet only coins can not be traded.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": "P2PError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + }, + { + "text": " - There is a connection problem.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/best_orders", + "closestElementReference": "error-responses" + } + ], + "komodo-defi-framework/api/v20/enable_bch_with_tokens": [ + { + "text": "enable_bch_with_tokens", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "enable-bch-with-tokens" + }, + { + "text": "The Komodo DeFi Framework supports Bitcoin Cash SLP tokens. Using this method, you can enable BCH/tBCH along with multiple SLP tokens in a single command.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "enable-bch-with-tokens" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the platform protocol coin. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "BCH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "tBCH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| bchd_urls | array of strings | A list of BCHD gRPC API server URLs, used for validation of SLP token transactions. It's recommended to add as many servers as possible. The URLs list can be found at ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://bchd.fountainhead.cash/", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". |\n| mode | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ActivationMode", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |\n| tx_history | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", spawns a background loop to store the local cache of address(es) transactions. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". |\n| slp_tokens_requests | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " objects. |\n| address_format | object | Optional. Overwrites the address format from coins file, if set. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "AddressFormat", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |\n| allow_slp_unsafe_conf | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", allows bchd_urls to be empty. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Warning:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " it is highly unsafe to do so as it may lead to invalid SLP transactions generation and tokens burning. |\n| get_balances | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", coin and token balances will not be returned in the response, and the response will be returned more quickly. |\n| required_confirmations | integer | Optional, defaults to value in the coins file, or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " if not set. Confirmations to wait for steps in swap. |\n| requires_notarization | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". Has no effect on BCH. |\n| tx_history | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " the Komodo DeFi Framework API will preload transaction history as a background process. Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " method |\n| utxo_merge_params | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "UtxoMergeParams", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " object. Used to reduce a wallet's UTXO count in cases where it is causing significantly slower RPC responses. |\n| | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://bchd.fountainhead.cash/", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ActivationMode", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "AddressFormat", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "UtxoMergeParams", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Go to: ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " for a full list of nodes/servers.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| current_block | integer | Block height of the coin being activated |\n| bch_addresses_infos | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " object. Note: the structure may vary based on the value of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " parameter. |\n| slp_addresses_infos | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " object. Note: the structure may vary based on the value of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " parameter. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "bch_addresses_infos and slp_addresses_infos are the same. This should be consolidated in the api.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "examples" + }, + { + "text": "Request with tx_history, cashaddress format, and automated utxo merging.", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "request-with-tx-history-cashaddress-format-and-automated-utxo-merging" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response" + }, + { + "text": "Request with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": "get_balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": " set to false", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "response-2" + }, + { + "text": "Error Types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "error-types" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------- | ------ | ----------------------------------------------------------------------------------- |\n| CoinProtocolParseError | string | Parsing the protocol of the platform coin you are trying to activate failed |\n| InternalError | string | The request was failed due to an Komodo DeFi Framework API internal error |\n| PlatformCoinCreationError | string | There was an error when trying to activate the platform coin |\n| PlatformConfigIsNotFound | string | Config of the platform coin you are trying to activate is not found |\n| PlatformIsAlreadyActivated | string | The platform coin you are trying to activate is already activated |\n| PrivKeyNotAllowed | string | The privkey is not allowed |\n| TokenConfigIsNotFound | string | Config of the token you are trying to activate is not found |\n| TokenProtocolParseError | string | Parsing the protocol of the token you are trying to activate failed |\n| Transport | string | The request was failed due to a network error |\n| UnexpectedDerivationMethod | string | The derivation method used is unexpected |\n| UnexpectedPlatformProtocol | string | Unexpected platform protocol found for the platform coin you are trying to activate |\n| UnexpectedTokenProtocol | string | Unexpected protocol is found in the config of the token you are trying to activate |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "error-types" + }, + { + "text": "PlatformIsAlreadyActivated Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "In this case, you need to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "disable", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": " BCH and try again.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "disable", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "PlatformConfigIsNotFound Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-config-is-not-found-error" + }, + { + "text": "UnexpectedPlatformProtocol Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "unexpected-platform-protocol-error" + }, + { + "text": "UnexpectedTokenProtocol Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "unexpected-token-protocol-error" + }, + { + "text": "PlatformCoinCreationError Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-coin-creation-error-error" + }, + { + "text": "PlatformCoinCreationError Error (native)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-coin-creation-error-error-native" + }, + { + "text": "PlatformCoinCreationError Error (Electrum server not responding)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_bch_with_tokens", + "closestElementReference": "platform-coin-creation-error-error-electrum-server-not-responding" + } + ], + "komodo-defi-framework/api/v20/enable_erc20": [ + { + "text": "enable_erc20", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "enable_erc20", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": " method allows you to activate additional ERC20 like tokens of a EVM type platform coin. Before using this method, you first need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "| parameter | Type | Description |\n| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the ERC20 like token coin. |\n| activation_params.required_confirmations | integer | Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "enable-erc20" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "response" + }, + { + "text": "Error - Platform coin is not yet activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "error-platform-coin-is-not-yet-activated" + }, + { + "text": "Error - Token already activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "error-token-already-activated" + }, + { + "text": "Error - Token config not found in coins file", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_erc20", + "closestElementReference": "error-token-config-not-found-in-coins-file" + } + ], + "komodo-defi-framework/api/v20/enable_eth_with_tokens": [ + { + "text": "enable_eth_with_tokens", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "enable-eth-with-tokens" + }, + { + "text": "The Komodo DeFi Framework supports ETH(Ethereum) and many other EVM type platform coins like AVAX(Avalanche), BNB(Binance), FTM(Fantom), MATIC(Polygon), ONE(Harmony), ETH-ARB20(Arbitrum).\nAdditionally, it supports ERC20 tokens on the ETH chain and associated ERC20 like tokens on the rest of the platform coin chains.Using this method, you can enable a platform coin along with multiple ERC20 like tokens of the platform coin chain in a single command.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "enable-eth-with-tokens" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the platform protocol coin. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "AVAX", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "BNB", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "FTM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "MATIC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ONE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ETH-ARB20", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| mm2 | integer | Required if not set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " file. Informs the Komodo DeFi Framework API whether or not the coin is expected to function. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| swap_contract_address | string | Address of etomic swap smart contract |\n| fallback_swap_contract | string | Address of backup etomic swap smart contract |\n| maker_swap_v2_contract | string | Backup address for the maker's swap smart contract |\n| taker_swap_v2_contract | string | Backup address for the taker's swap smart contract |\n| nodes | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "EvmNode", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " objects. (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "). |\n| | | |\n| erc20_tokens_requests | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " objects. |\n| gas_station_decimals | integer | Optional, for ETH/ERC20 and other gas model chains. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "8", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". Defines the decimals used to denominate the gas station response to gwei units. For example, the ETH gas station uses 8 decimals, which means that \"average\": 860 is equal to 86 gwei. While the Matic gas station uses 9 decimals, so 860 would mean 860 gwei exactly. |\n| gas_station_policy.policy | string | Optional, for ETH/ERC20 and other gas model chains. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "\"MeanAverageFast\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". Defines the method of gas price calculation from the station response. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "\"MeanAverageFast\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " will use the mean between average and fast fields. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "\"Average\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " will return a simple average value. |\n| get_balances | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", coin and token balances will not be returned in the response, and the response will be returned more quickly. |\n| priv_key_policy | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". value can be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ",", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " when Komodo DeFi Framework is built for native platforms. value can be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Metamask", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " when the Komodo DeFi Framework is built targeting ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "wasm", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| required_confirmations | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". When the platform coin is involved, the number of confirmations for the Komodo DeFi Framework API to wait during the transaction steps of an atomic swap |\n| requires_notarization | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", coins protected by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " will wait for a notarization before progressing to the next atomic swap transactions step. |\n| rpc_mode | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Http", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ", value can be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Metamask", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " when the Komodo DeFi Framework is built targeting ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "wasm", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| tx_history | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " the Komodo DeFi Framework API will preload transaction history as a background process. Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": " method |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "EvmNode", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| current_block | integer | Block height of the coin being activated |\n| eth_addresses_infos | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " object. Note: the structure may vary based on the value of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " parameter. |\n| erc20_addresses_infos | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " object. Note: the structure may vary based on the value of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": " parameter. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "examples" + }, + { + "text": "Request including optional gas station parameters", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "request-including-optional-gas-station-parameters" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response" + }, + { + "text": "Request with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": "get_balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": " set to false", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "set-to-false" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "response-2" + }, + { + "text": "Error Types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "error-types" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------- | ------ | ----------------------------------------------------------------------------------- |\n| CoinProtocolParseError | string | Parsing the protocol of the platform coin you are trying to activate failed |\n| InternalError | string | The request was failed due to an Komodo DeFi Framework API internal error |\n| PlatformCoinCreationError | string | There was an error when trying to activate the platform coin |\n| PlatformConfigIsNotFound | string | Config of the platform coin you are trying to activate is not found |\n| PlatformIsAlreadyActivated | string | The platform coin you are trying to activate is already activated |\n| PrivKeyNotAllowed | string | The privkey is not allowed |\n| TokenConfigIsNotFound | string | Config of the token you are trying to activate is not found |\n| TokenProtocolParseError | string | Parsing the protocol of the token you are trying to activate failed |\n| Transport | string | The request was failed due to a network error |\n| UnexpectedDerivationMethod | string | The derivation method used is unexpected |\n| UnexpectedPlatformProtocol | string | Unexpected platform protocol found for the platform coin you are trying to activate |\n| UnexpectedTokenProtocol | string | Unexpected protocol is found in the config of the token you are trying to activate |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "error-types" + }, + { + "text": "PlatformIsAlreadyActivated Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "In this case, you need to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "disable", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": " the platform coin and try again.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "disable", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "PlatformConfigIsNotFound Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "platform-config-is-not-found-error" + }, + { + "text": "CoinProtocolParseError Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "coin-protocol-parse-error-error" + }, + { + "text": "UnexpectedPlatformProtocol Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "unexpected-platform-protocol-error" + }, + { + "text": "TokenConfigIsNotFound Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "token-config-is-not-found-error" + }, + { + "text": "TokenProtocolParseError Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "token-protocol-parse-error-error" + }, + { + "text": "UnexpectedTokenProtocol Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_eth_with_tokens", + "closestElementReference": "unexpected-token-protocol-error" + } + ], + "komodo-defi-framework/api/v20/enable_slp": [ + { + "text": "enable_slp", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "enable_slp", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": " method allows you to activate additional SLP tokens. Before using this method, you first need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "enable_bch_with_tokens", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "enable_bch_with_tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "| parameter | Type | Description |\n| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the SLP token. |\n| activation_params.required_confirmations | integer | Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "enable-slp" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "response" + }, + { + "text": "Error - BCH not yet activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "error-bch-not-yet-activated" + }, + { + "text": "Error - Token already activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "error-token-already-activated" + }, + { + "text": "Error - Token config not found in coins file", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_slp", + "closestElementReference": "error-token-config-not-found-in-coins-file" + } + ], + "komodo-defi-framework/api/v20/enable_tendermint_token": [ + { + "text": "enable_tendermint_token", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "enable_tendermint_token", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": " method allows you to activate additional Tendermint assets. Before using this method, you first need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "enable_tendermint_with_assets", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "enable_tendermint_with_assets", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "| parameter | Type | Description |\n| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the Tendermint asset. |\n| activation_params.required_confirmations | integer | Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "enable-tendermint-token" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "response" + }, + { + "text": "Error - Platform coin is not yet activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "error-platform-coin-is-not-yet-activated" + }, + { + "text": "Error - Token already activated", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "error-token-already-activated" + }, + { + "text": "Error - Token config not found in coins file", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/enable_tendermint_token", + "closestElementReference": "error-token-config-not-found-in-coins-file" + } + ], + "komodo-defi-framework/api/v20/enable_tendermint_with_assets": [ + { + "text": "enable_tendermint_with_assets", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "enable-tendermint-with-assets" + }, + { + "text": "Use this method to activate Tendermint coins (COSMOS/IRIS/OSMOSIS) and IBC assets in a single command.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "enable-tendermint-with-assets" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of the platform protocol coin. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "ATOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "IRIS", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "OSMOSIS", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| mm2 | integer | Required if not set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " file. Informs the Komodo DeFi Framework API whether or not the coin is expected to function. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| tokens_params | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " objects. |\n| priv_key_policy | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ". value can be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ",", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " when Komodo DeFi Framework is built for native platforms. value can be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Metamask", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " when the Komodo DeFi Framework is built targeting ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "wasm", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| tx_history | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " the Komodo DeFi Framework API will preload transaction history as a background process. Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " method |\n| required_confirmations | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ". When the platform coin is involved, the number of confirmations for the Komodo DeFi Framework API to wait during the transaction steps of an atomic swap |\n| requires_notarization | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", coins protected by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": " will wait for a notarization before progressing to the next atomic swap transactions step. |\n| get_balances | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": ", coin and token balances will not be returned in the response, and the response will be returned more quickly. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "TokensRequest", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Komodo Platform's dPoW security", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| current_block | integer | Block height of the coin being activated |\n| ticker | string | Ticker of the platform protocol coin, as input in the request. |\n| address | string | An address for the activated coin |\n| balance | object | Only returned when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": ". A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "BalanceInfos", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": " object. |\n| tokens_balances | array of objects | Only returned when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": ". A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": " objects, one for each token. |\n| tokens_tickers | array | Only returned when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": ". A list of each token which was activated. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "BalanceInfos", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "AddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "examples" + }, + { + "text": "Request default optional values", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "request-default-optional-values" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response" + }, + { + "text": "Request with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "false" + }, + { + "text": "get_balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "false" + }, + { + "text": " set to ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "false" + }, + { + "text": "false", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "false" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "response-2" + }, + { + "text": "Error Types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "error-types" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------- | ------ | ----------------------------------------------------------------------------------- |\n| CoinProtocolParseError | string | Parsing the protocol of the platform coin you are trying to activate failed |\n| InternalError | string | The request was failed due to an Komodo DeFi Framework API internal error |\n| PlatformCoinCreationError | string | There was an error when trying to activate the platform coin |\n| PlatformConfigIsNotFound | string | Config of the platform coin you are trying to activate is not found |\n| PlatformIsAlreadyActivated | string | The platform coin you are trying to activate is already activated |\n| PrivKeyNotAllowed | string | The privkey is not allowed |\n| TokenConfigIsNotFound | string | Config of the token you are trying to activate is not found |\n| TokenProtocolParseError | string | Parsing the protocol of the token you are trying to activate failed |\n| Transport | string | The request was failed due to a network error |\n| UnexpectedDerivationMethod | string | The derivation method used is unexpected |\n| UnexpectedPlatformProtocol | string | Unexpected platform protocol found for the platform coin you are trying to activate |\n| UnexpectedTokenProtocol | string | Unexpected protocol is found in the config of the token you are trying to activate |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "error-types" + }, + { + "text": "PlatformConfigIsNotFound Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "platform-config-is-not-found-error" + }, + { + "text": "PlatformIsAlreadyActivated Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "platform-is-already-activated-error" + }, + { + "text": "CoinProtocolParseError", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "coin-protocol-parse-error" + }, + { + "text": "UnexpectedPlatformProtocol Error", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "unexpected-platform-protocol-error" + }, + { + "text": "TokenConfigIsNotFound Error", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "token-config-is-not-found-error" + }, + { + "text": "TokenProtocolParseError Error", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "token-protocol-parse-error-error" + }, + { + "text": "UnexpectedTokenProtocol Error", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/enable_tendermint_with_assets", + "closestElementReference": "unexpected-token-protocol-error" + } + ], + "komodo-defi-framework/api/v20/get_public_key": [ + { + "text": "get_public_key", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "get-public-key" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "get-public-key" + }, + { + "text": "get_public_key", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "get-public-key" + }, + { + "text": " method returns the compressed secp256k1 pubkey corresponding to the user's seed phrase.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "get-public-key" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------- | ------ | ------------- |\n| public_key | string | User's pubkey |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20/get_public_key_hash": [ + { + "text": "get_public_key_hash", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": "get_public_key_hash", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": " method returns the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": "RIPEMD-160", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": " hash version of your public key", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": "RIPEMD-160", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "get-public-key-hash" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | ------ | --------------------------------- |\n| public_key_hash | string | User's RIPEMD-160 public key hash |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_public_key_hash", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20/get_raw_transaction": [ + { + "text": "get_raw_transaction", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": "get_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": " method takes ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": "tx_hash", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": " as input, and returns the full signed raw transaction hex for any transaction that is confirmed or within the mempool.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "get-raw-transaction" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------------------------------------------- |\n| coin | string | the name of the coin the user desires to request for the transaction |\n| tx_hash | string | hash of the transaction |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | -------------------------------------------- |\n| tx_hex | string | bytes of signed transaction in string format |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "response" + }, + { + "text": "Examples:", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "examples" + }, + { + "text": "Request (DOC)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "request-doc" + }, + { + "text": "Response (success)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "response-success" + }, + { + "text": "Request (ETH)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "request-eth" + }, + { + "text": "Response (success)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "response-success-2" + }, + { + "text": "Error response (no such coin)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-response-no-such-coin" + }, + { + "text": "Error (invalid hash)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-invalid-hash" + }, + { + "text": "Error (invalid EC Signature)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-invalid-ec-signature" + }, + { + "text": "Error Types", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + }, + { + "text": "| Structure | Type | Description |\n| ---------------- | ------ | ------------------------------------------------------------------------- |\n| NoSuchCoin | string | The specified coin was not found or is not activated yet |\n| InvalidHashError | string | The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + }, + { + "text": "hash", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + }, + { + "text": " is not valid |\n| Transport | string | The request was failed due to a network error |\n| HashNotExist | string | The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + }, + { + "text": "hash", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + }, + { + "text": " is not exist |\n| InternalError | string | The request was failed due to an Komodo DeFi Framework API internal error |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_raw_transaction", + "closestElementReference": "error-types" + } + ], + "komodo-defi-framework/api/v20/get_staking_infos": [ + { + "text": "get_staking_infos", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": "get_staking_infos", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": " method returns information about your node's staking. Currently QTUM and tQTUM (test tokens avalable at ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": "https://testnet-faucet.qtum.info/", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": ") have been integrated, but this functionality will be expanded to more coins in future.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "get-staking-infos" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------- |\n| coin | string | the coin being staked |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "command" + }, + { + "text": "Response (not currently staking)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "response-not-currently-staking" + }, + { + "text": "Response (staking active)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/get_staking_infos", + "closestElementReference": "response-staking-active" + } + ], + "komodo-defi-framework/api/v20": [ + { + "text": "Komodo DeFi SDK RPC Protocol v2.0", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "Starting with version ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "beta-2.1.3434", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": ", the Komodo DeFi SDK supports the standardized protocol format called ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "mmrpc 2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "beta-2.1.3434", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "It includes a uniform request, successful and error response formats. At the moment, only a few RPC methods support the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "mmrpc 2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": " protocol.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "komodo-de-fi-sdk-rpc-protocol-v2-0" + }, + { + "text": "Request", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi SDK RPC protocol. Must be exactly \"2.0\" |\n| userpass | string (optional) | your password for protected RPC methods. Skip this field if the specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": "method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": " is public |\n| method | string | the name of the method to be invoked |\n| params | object (optional) | a structured value that holds the parameter values to be used during the invocation of the method. This field may be omitted if the method doesn't take arguments |\n| id | number (optional) | the identifier is established by the client. Komodo DeFi SDK will reply with the same value in the Response object if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": "id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": " field is included and not ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": "NULL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "request" + }, + { + "text": "Response (Success)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-success" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----------------- | ------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi SDK RPC protocol |\n| result | object | the value of this field is determined by the method invoked on Komodo DeFi SDK |\n| id | number (optional) | the identifier established by the client. The same value as in the Request if it was passed |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-success" + }, + { + "text": "Response (Error)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-error" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ----------------- | ------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi API RPC protocol |\n| error | string | the common error description |\n| error_path | string | the error path consisting of file names separated by a dot similar to JSON path notation |\n| error_trace | string | the error path consisting of file and line number pairs separated by ']' |\n| error_type | string | the string error identifier used to determine the cause of the error |\n| error_data | object | an object containing the error data of the corresponding ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-error" + }, + { + "text": "error_type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-error" + }, + { + "text": " |\n| id | number (optional) | the identifier established by the client. The same value as in the Request if it was passed |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-error" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "examples" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-success-2" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-error-2" + }, + { + "text": "Common Komodo DeFi SDK Request / Response Objects", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "common-komodo-de-fi-sdk-request-response-objects" + }, + { + "text": "The folowing objects are used in the request or response of multiple Komodo DeFi SDK methods.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "common-komodo-de-fi-sdk-request-response-objects" + }, + { + "text": "ActivationParams", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationParams", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " object defines additional parameters used for activation. These params may vary depending on the coin type.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| required_confirmations | integer | Optional. Confirmations to wait for steps in swap. Defaults to value in the coins file if not set. |\n| requires_notarization | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". For ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "dPoW", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " protected coins, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " value will wait for transactions to be notarised when doing swaps. Overrides value if set in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " file. |\n| mode | object | QTUM, UTXO & ZHTLC coins only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " object. |\n| zcash_params_path | string | ZHTLC coins only. Path to folder containing ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "Zcash parameters", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". Optional, defaults to standard location as defined in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "this guide", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " |\n| scan_blocks_per_iteration | integer | ZHTLC coins only. Sets the number of scanned blocks per iteration during ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "BuildingWalletDb", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " state. Optional, default value is 1000. |\n| scan_interval_ms | integer | ZHTLC coins only. Sets the interval in milliseconds between iterations of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "BuildingWalletDb", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " state. Optional, default value is 0. |\n| 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 ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "my_tx_history (v2)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " method. |\n| min_addresses_number | integer | Optional, HD wallets only. Number of addresses to generate. If not specified, addresses will be generated up to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "path_to_address::address_index", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". |\n| scan_policy | string | Optional, HD wallets only. Whether or not to scan for new addresses. Select from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "do_not_scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan_if_new_wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan_if_new_wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". Note that ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " will result in multple requests to the Komodo DeFi API and may take some time to complete. |\n| gap_limit | integer | Optional, HD wallets only. The max number of empty addresses in a row. Transactions sent to an address outside the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "gap_limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ", will not be identified when scanning. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "20", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". |\n| path_to_address | object | Optional, HD wallets only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "AddressDerivationPath", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " object. |\n| get_balances | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ", coin and token balances will not be returned in the response, and the response will be returned more quickly. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "dPoW", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "Zcash parameters", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "this guide", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "my_tx_history (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "AddressDerivationPath", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "Is priv_key_policy still a thing?\nDefaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ". Set as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " to activate in Trezor mode.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "For ZHTLC coins, older wallets need to set the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "sync_params", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " field to a date before its\nfirst transaction to see all balance and history. This may take a long time on the first\nactivation, but subsequent activations will be much faster.\nUsing a smaller ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan_blocks_per_iteration", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": " and larger ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "scan_interval_ms", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": ",\nwill reduce the average CPU load during ZHTLC coin activation (at the cost of a\nlonger activation time). These optional fields are recommended when developing\nfor iOS, where a high CPU load may kill the activation process. Android &\ndesktop operating systems do not appear to have any problems with high CPU\nload during ZHTLC coin activation.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-params" + }, + { + "text": "ActivationMode", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Defines the activation mode for QTUM, BCH, UTXO & ZHTLC coins.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |\n| rpc | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Native", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " if running a native blockchain node, ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " if using electrum servers or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " for ZHTLC coins. |\n| rpc_data | object | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " mode only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-mode" + }, + { + "text": "ActivationRpcData", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Contains information about electrum & lightwallet_d servers for coins being used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " mode.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| light_wallet_d_servers | list | ZHTLC only. A list of urls which are hosting lightwallet_d servers for a coin. |\n| electrum_servers | list of objects | ZHTLC only. A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " objects. |\n| electrum | list of objects | QTUM, BCH & UTXO coins only. A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " objects. |\n| 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: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "\"earliest\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (the coin's sapling_activation_height), ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "height", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (a specific block height) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "date", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": " (a unix timestamp). |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-rpc-data" + }, + { + "text": "ActivationServers", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "Contains information electrum servers for coins being used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "Electrum", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "Light", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": " mode.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| url | string | The URL and port for an electrum server. |\n| ws_url | string | Optional, for WSS only. The URL and port for an electrum server's WSS port. |\n| protocol | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": ". Transport protocol used to connect to the server. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": " |\n| disable_cert_verification | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": ", this disables server SSL/TLS certificate verification (e.g. for self-signed certificates). ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "Use at your own risk!", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "activation-servers" + }, + { + "text": "ZHTLC Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "zhtlc-example" + }, + { + "text": "HD UTXO Activation (v2)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "hd-utxo-activation-v2" + }, + { + "text": "HD UTXO Activation (v2)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "hd-utxo-activation-v2-2" + }, + { + "text": "AddressDerivationPath", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "AddressDerivationPath", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " object defines the account / change / address_index of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " used for your wallet. Using different values for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "account_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " parameters will result in a different address and private key for each combination. The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "chain", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " parameter is used to specify if the change from a transaction. Set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " for addresses that are intended to be visible outside of the wallet (e.g. for receiving payments). ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " is used for addresses which are not meant to be visible outside of the wallet and is used to return the leftover change from a transaction.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------- | ---------------------------------------------------------------------------------------- |\n| account_id | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": ". Used as a layer of separation or hierarchy. |\n| chain | string | Optional. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " (0) and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": " (1). Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": ". |\n| address_id | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": ". Used as a layer of separation or hierarchy. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-derivation-path" + }, + { + "text": "AddressInfos", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "addressInfos", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " object includes the following items for a given address:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| balances | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "BalanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " object. Not included in responses where ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " |\n| derivation_method | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "DerivationMethod", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " object |\n| pubkey | string | The public key associated with the seed used to launch Komodo DeFi |\n| tickers | array | A list of tokens which were successfully activated. Only included in responses where ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "get_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "BalanceInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "DerivationMethod", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "address-infos" + }, + { + "text": "Example with balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "example-with-balances" + }, + { + "text": "Example without balances", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "example-without-balances" + }, + { + "text": "BalanceInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "balance-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "balance-info" + }, + { + "text": "balanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "balance-info" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "balance-info" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| spendable | string (numeric) | The available amount of a coin or token which is ready to be traded or withdrawn. |\n| unspendable | string (numeric) | The amount of a coin or token which is awaiting confirmation on the block chain for an incoming or outgoing transaction. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "balance-info" + }, + { + "text": "DerivationMethod", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "DerivationMethod", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ------------------------------------------------------------------------------- |\n| type | string | Defines how keypairs will be generated. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "Iguana", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "HDWallet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "Using the same seed or private key to generate keypairs using different derivation methods will result in a different address and private key for each method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "Where the value indicates:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "Iguana", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": ": The coin or token is was activated using Iguana derivation (default).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "HDWallet", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": ": The coin or token is was activated using a Hierarchical Deterministic (HD) Wallet derivation path.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "derivation-method" + }, + { + "text": "EvmNode", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "EvmNode", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | ------------------------------------------------------------------------------------------------------------------- |\n| url | string | URL of an RPC node |\n| gui_auth | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": ". Must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": " to access RPC nodes run officially by the Komodo Platform team |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "evm-node" + }, + { + "text": "CoinProtocol", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ----------------------------------------------------------------------------------------- |\n| type | integer | One of the supported [coin types](link TBA) |\n| protocol_data | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol" + }, + { + "text": "CoinProtocolData", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------- | ------ | ------------------------------------------------------------------------------------------------ |\n| platform | string | Indicates the platform parent coin for EMV-like protocols, or the coin used for lightning nodes. |\n| network | string | Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "mainnet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": " or `testnet |\n| confirmation_targets | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "ConfirmationTargets", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "ConfirmationTargets", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "coin-protocol-data" + }, + { + "text": "ConfirmationTargets", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "This object represents the number of blocks required for an on-chain lightning-related transaction to be confirmed.\nIt is used for estimating the transaction fee rate (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ") for different transaction types in the context of permissionless transactions performed by the node. Different target types are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "background", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "normal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| background | integer | Used for transactions that can tolerate slower confirmation times when the transaction fee rate decreases. These transactions are not time-sensitive and can afford to wait longer for confirmation. The recommended range is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "12", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": " blocks to ensure a low ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |\n| normal | integer | Used for transactions that we want to confirm promptly, without significant delay (e.g, transactions for opening payment channels). These transactions are important but not critical. Suggested value is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "6", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": " blocks to ensure a moderate ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |\n| high_priority | integer | Used for transactions that require quick confirmation to prevent potential loss of funds (e.g. redeeming a Hashed Time Lock Contract (HTLC) on the blockchain before it times out). These transactions are time-critical and must be confirmed promptly to ensure the security of funds. Recommended value for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": " is 1-2 blocks to ensure a high ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "feerate", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "Using the recommended values in the above table with a coin that has a block time of 10 minutes, the equivalent time in minutes is:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "background", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 120 minutes to 1440 minutes (2 hours to 1 day).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "normal", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 60 minutes (one hour).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "high_priority", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": ": 10 to 20 minutes.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "confirmation-targets" + }, + { + "text": "CounterpartyChannelConfig", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| allow_outbound_0conf | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". When setting an outbound channel, it can be used straight away ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "without waiting", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": " for any on-chain confirmations. |\n| force_announced_channel_preference | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Set to force an incoming channel to match our announced channel preference in ChannelOptions announced_channel. |\n| outbound_channels_confirmations | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Confirmations we will wait for before considering an inbound channel locked in. |\n| our_locktime_limit | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "2016", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Set to the amount of blocks we're willing to wait to claim money back to us. |\n| min_funding_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Minimum allowed satoshis when an inbound channel is funded. |\n| max_funding_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "16777215", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". Maximum allowed satoshis when an inbound channel is funded. |\n| max_htlc_minimum_msat | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "18446744073709551615", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the minimum size of HTLCs we can send to them. This allows us to limit the maximum minimum-size they can require. |\n| min_max_htlc_value_in_flight_msat | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the maximum value of pending HTLCs to them at any given time to limit their funds exposure to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". This allows us to set a minimum such value. |\n| max_channel_reserve_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "18446744073709551615", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node will require us to keep a certain amount in direct payment to ourselves at all time, ensuring that we are able to be punished if we broadcast an old state. This allows us to limit the amount which we will have to keep to ourselves (and cannot use for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "). |\n| min_max_accepted_htlcs | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": ". The remote node sets a limit on the maximum number of pending HTLCs to them at any given time. This allows us to set a minimum such value. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "without waiting", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "counterparty-channel-config" + }, + { + "text": "FeeInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " response object includes the following items for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "withdraw (v2)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " requests:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "withdraw (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | Type of transaction fee; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "EthGas", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " |\n| amount | string (numeric) | Fee amount in coin units, used only when type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " (fixed amount not depending on tx size) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " (amount per Kbyte) |\n| gas_price | string (numeric) | Used only when fee type is EthGas; sets the gas price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "gwei", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": " units |\n| gas | number (integer) | Used only when fee type is EthGas; sets the gas limit for transaction |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info" + }, + { + "text": "LightningActivationParams", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | string | The name of the node that will be used in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": " |\n| listening port | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "9735", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". The port that this node listens for incoming connections on. |\n| color | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "2b6680", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". A hexidecimal color string which will be used in network graphs on ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": " |\n| payment_retries | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "5", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": ". Number of times a payment will be retried if it fails. |\n| backup_path | string | Optional. The backup path for channel backups, preferably on an external drive. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "lightning explorers", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-activation-params" + }, + { + "text": "LightningChannelAmount", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | -------------------------------------------------------------------------------------- |\n| type | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Exact", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": " for a specific amount or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": " for whole balance. |\n| value | object | Only required if type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "Exact", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": ". The amount in BTC you want to open the channel with. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-amount" + }, + { + "text": "LightningChannelConfig", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "The values in this object are only used if the channel is being opened by the user. If the channel is being opened by the counterparty, the values in this object are ignored.\nIf not specified when using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "open_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "update_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " methods, the values in this object will default to the values set in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " configuration file.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "update_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| inbound_channels_confirmations | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "6", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Should be set in coins file, and applies to all channels. Confirmations we will wait for before considering an inbound channel locked in. |\n| max_inbound_in_flight_htlc_percent | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Should be set in coins file, and applies to all channels. Sets the percentage of the channel value we will cap the total value of outstanding inbound HTLCs to. |\n| our_htlc_minimum_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". The smallest value HTLC we will accept to process. The channel gets closed any time our counterparty misbehaves by sending us an HTLC with a value smaller than this. |\n| announced_channel | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". Set to announce the channel publicly and notify all nodes that they can route via this channel. GUIs and wallet apps should be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". |\n| commit_upfront_shutdown_pubkey | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". When ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (and the counterparty agrees), the user must use the same key for cooperative closing. This prevents a user from changing the destination address in a cooperative close, which slightly increases security (however, this option is not required if the counterparty does not support it and a channel can be accepted regardless). ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "Note that the key for forced closing is always fixed when opening a channel and is different from shutdown_pubkey.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " |\n| counterparty_locktime | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "144", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". The number of blocks we require our counterparty to wait to claim their money on chainif they broadcast a revoked transaction. We have to be online at least once during this time to punish our counterparty for broadcasting a revoked transaction. We have to account also for the time to broadcast and confirm our transaction, possibly with time in between to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "RBF (Replace-By-Fee)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " the spending transaction. |\n| negotiate_scid_privacy | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ", we attempt to negotiate the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "scid_privacy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (referred to as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "scid_alias", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "BOLTs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": ") option for outbound private channels. This provides better privacy by not including our real on-chain channel UTXO in each invoice and requiring that our counterparty only relay HTLCs to us using the channel's SCID alias. |\n| their_channel_reserve_sats | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "10000", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " or 1% of channel value. The minimum balance that the other node has to maintain on their side, at all times. This ensures that if our counterparty broadcasts a revoked state, we can punish them by claiming at least this value on chain. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "RBF (Replace-By-Fee)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "BOLTs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "For GUIs and wallet apps, it is recommended to set ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "announced_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": " (the default value), as the node is not expected to be reliably online.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-config" + }, + { + "text": "LightningChannelOptions", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| proportional_fee_in_millionths_sats | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Amount (in milli-satoshi) charged for payments forwarded outbound over the channel, in excess of proportional_fee_in_millionths_sats. |\n| base_fee_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "1000", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Amount (in milli-satoshi) charged for payments forwarded outbound over the channel, in excess of proportional_fee_in_millionths_sats. |\n| cltv_expiry_delta | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "72", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Blocks until ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "CheckLockTimeVerify (CLTV)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": " expiry. |\n| max_dust_htlc_exposure_msat | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "5000000", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". Limit our total exposure to in-flight ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "HTLCs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": " which are burned to fees as they are too small to claim on-chain. |\n| force_close_avoidance_max_fee_sats | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "1000", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": ". The additional fee we're willing to pay to avoid waiting for the counterparty's locktime to reclaim funds. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "CheckLockTimeVerify (CLTV)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "HTLCs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-channel-options" + }, + { + "text": "LightningClosedChannelsFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| channel_id | string | Optional. Unique string identifying a channel by its ID. |\n| counterparty_node_id | string | Optional. A hexidecimal string identifying a counterparty node. |\n| funding_tx | string | Optional. A transaction ID which added funds. |\n| from_funding_value | integer | Optional. The minimum value of channel funding in satoshis. |\n| to_funding_value | integer | Optional. The maximum value of channel funding in satoshis. |\n| channel_type | string | Optional. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Inbound", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Outbound", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": ". |\n| closing_tx | integer | Optional. A transaction ID which closed the channel. |\n| closure_reason | integer | Optional. The reason a channel was closed. |\n| claiming_tx | integer | Optional. The ID of the transaction that returned the remaining outbound funds when the channel was closed to our on-chain address. |\n| from_claimed_balance | integer | Optional. The minimum balance of channel funds claimed in satoshis. |\n| to_claimed_balance | integer | Optional. The maximum balance of channel funds claimed in satoshis. |\n| channel_visibility | integer | Optional. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Public", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Private", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "Response may change to be more consistent in future.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206446309", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206446309", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-closed-channels-filter" + }, + { + "text": "LightningOpenChannelsFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| channel_id | string | Optional. Unique string identifying a channel by its ID. |\n| counterparty_node_id | string | Optional. A hexidecimal string identifying a counterparty node. |\n| funding_tx | string | Optional. A transaction ID which added funds. |\n| from_funding_value_sats | integer | Optional. The minimum value of channel funding in satoshis. |\n| to_funding_value_sats | integer | Optional. The maximum value of channel funding in satoshis. |\n| is_outbound | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", limits the response to outbound channels only. |\n| from_balance_msat | integer | Optional. The minimum channel balance in millisatoshis. |\n| to_balance_msat | integer | Optional. The maximum channel balance in millisatoshis. |\n| from_outbound_capacity_msat | integer | Optional. The minimum outbound capacity of the channel balance in millisatoshis. |\n| to_outbound_capacity_msat | integer | Optional. The maximum outbound capacity of the channel balance in millisatoshis. |\n| from_inbound_capacity_msat | integer | Optional. The minimum inbound capacity of the channel balance in millisatoshis. |\n| to_inbound_capacity_msat | integer | Optional. The maximum inbound capacity of the channel balance in millisatoshis. |\n| confirmed | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels with channel opening transactions that passed the number of confirmations required for the channel to be usable will be returned. |\n| is_usable | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels that are confirmed and the counterparty is online, meaning that these channels can be used for payments will be returned. |\n| is_public | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": ", only channels that our node announces to the lightning network, these channels are visible on lightning explorers will be returned. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-open-channels-filter" + }, + { + "text": "LightningPayment", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | The payment type. Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". |\n| invoice | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". An identifying string which represents the invoice. |\n| destination | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". A ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "node_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " (which is also the node address in lightning context). Not to be confused with an onchain address. |\n| amount_in_msat | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Amount to be paid, in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " (A thousandth of a satoshi; the same as 0.00000000001 bitcoin). |\n| expiry | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "3600", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": ". Seconds until the payment expires. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "keysend", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment" + }, + { + "text": "LightningPaymentFilter", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------- | ------- | ------------------------------------------------------------------------------------------------------------------- |\n| payment_type | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "LightningPaymentType", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " object. |\n| description | string | Optional. A note to indicate the purpose of the invoice. |\n| status | string | Optional. Accepted values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "pending", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "succeeded", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "failed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": ". |\n| from_amount_msat | integer | Optional. Minimum amount sent in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| to_amount_msat | integer | Optional. Maximum amount sent in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| from_fee_paid_msat | integer | Optional. Minimum transaction fee paid in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| to_fee_paid_msat | integer | Optional. Maximum transaction fee paid in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": " |\n| from_timestamp | string | Optional. Minimum timestamp (in milliseconds) of payment results to return. |\n| to_timestamp | string | Optional. Maximum timestamp (in milliseconds) of payment results to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-filter" + }, + { + "text": "LightningPaymentType", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------ | ----------------------------------------------------------------------------------- |\n| type | object | Accepted values are ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Outbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Inbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": ". |\n| destination | string | Only used if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Outbound Payment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": ". A pubkey which will receive the payment. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Response may change in future.\nSee ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206176530", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206176530", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "lightning-payment-type" + }, + { + "text": "Pagination", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "pagination" + }, + { + "text": "For requests which return many results, pagination offsets may be applied. ** Use either value, not both. **", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "pagination" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ------- | ------------------------------------------------------- |\n| PageNumber | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "pagination" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "pagination" + }, + { + "text": ". Offset for paginated results |\n| FromId | integer | Optional. Ignores any results prior to this UUID |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "pagination" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "example" + }, + { + "text": "HistoryTarget", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "Used to specify a HD wallet ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "account_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " for [my_tx_history (v2)] requests.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| type | string | Filters results by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "account_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " part of the derivation path. |\n| account_id | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "ACCOUNT_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " BIP44 derivation path. |\n| address_id | integer | Only required when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": ". ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " BIP44 derivation path. |\n| chain | string | Only required when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": ". ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": ". External is used for addresses that are meant to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used for return transaction change. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "history-target" + }, + { + "text": "Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "example-2" + }, + { + "text": "TokensRequest", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": "TokensRequest", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": " object includes the following items for a given coin or token:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| ticker | string | Ticker of the token to be enabled |\n| required_confirmations | integer | How many confirmations to wait during the transaction steps of an atomic swap. Overwrites value in coins file; defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": "3", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "tokens-request" + }, + { + "text": "WalletBalanceInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "WalletBalanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": " object includes the following items in the activation response for a coin in HD mode:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "| Parameter | Type | Description |\n| ------------ | ------ | ----------------------------------------------------------------------------------------------- |\n| wallet_type | string | In HD wallet mode, this will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "HD", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": ". ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": " What are the other values? ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": " |\n| accounts | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "WalletAccountInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "WalletAccountInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-balance-info" + }, + { + "text": "WithdrawFromInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "WithdrawFromInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " response object includes the following items for HD Wallet ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "withdraw (v2)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " requests.\nYou can use either the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "derivation_path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " on its own, or the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "account_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "chain", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "address_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " together.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "withdraw (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| derivation_path | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " of the address. |\n| account_id | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "ACCOUNT_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " BIP44 derivation path. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "Please don't confuse with the global account.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " |\n| address_id | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": " BIP44 derivation path. |\n| chain | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": ". External is used for addresses that are meant to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used for return transaction change. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "withdraw-from-info" + }, + { + "text": "FeeInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " response object includes the following items for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "withdraw (v2)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " requests:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "withdraw (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |\n| type | string | Type of transaction fee; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "EthGas", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " |\n| amount | string (numeric) | Fee amount in coin units, used only when type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " (fixed amount not depending on tx size) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " (amount per Kbyte) |\n| gas_price | string (numeric) | Used only when fee type is EthGas; sets the gas price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "gwei", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": " units |\n| gas | number (integer) | Used only when fee type is EthGas; sets the gas limit for transaction |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "fee-info-2" + }, + { + "text": "ScanAddressesInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "ScanAddressesInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " response object includes the following items for request in HD mode:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| account_index | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "ACCOUNT_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " BIP44 derivation path. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "Please don't confuse with the global account.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " |\n| derivation_path | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " of the account. |\n| new_addresses | list | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "NewAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " objects. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "NewAddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "Confirm ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "new_addresses", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": " array has the structure of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "NewAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "scan-addresses-info" + }, + { + "text": "NewAddressInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "NewAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": " response object includes the following items for request in HD mode:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| address | string | The account address for a specific derivation path under the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "account_index", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": ". |\n| derivation_path | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": " of the address. If there are no more addresses with balances within the gap limit, the address index will increment. |\n| balance | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "balanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": " object. |\n| chain | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": ". External is used for addresses that are meant to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used for return transaction change. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "balanceInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "new-address-info" + }, + { + "text": "WalletAccountInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "WalletAccountInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " object includes the following items in the activation response for a coin in HD mode:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| account_index | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "ACCOUNT_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " BIP44 derivation path. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "Please don't confuse with the global account.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " |\n| derivation_path | string | Derivation path up to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "COIN", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " child. E.g. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "\"m/44'/141'/0'\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " |\n| total_balance | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "balanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " object. |\n| addresses | list | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "AccountAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": " objects. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "balanceInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "AccountAddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "wallet-account-info" + }, + { + "text": "AccountAddressInfo", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "AccountAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": " object includes the following items for active addresses in the activation response for a coin in HD mode:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | ----------------------------------------------------------------------------------------------------------- |\n| address | string | The account address for a specific derivation path under the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "account_index", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": ". |\n| derivation_path | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": " of the address. |\n| chain | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": ", as defined in the activation request. |\n| balance | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "balanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "balanceInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "account-address-info" + }, + { + "text": "Error types", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-types" + }, + { + "text": "NotSufficientBalance", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "available", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": " balance is not sufficient to transfer the specified amount.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| coin | string | the name of the coin which balance is not sufficient. This coin name may differ from the requested coin. For example, ERC20 fees are paid by ETH (gas) |\n| available | string (numeric) | the balance available for transfer |\n| required | string (numeric) | the amount required to transfer the specified amount. This amount is necessary but may not be sufficient |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "Response (NotSufficientBalance error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-not-sufficient-balance-error" + }, + { + "text": "ZeroBalanceToWithdrawMax", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "zero-balance-to-withdraw-max" + }, + { + "text": "The available balance is zero.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "zero-balance-to-withdraw-max" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "zero-balance-to-withdraw-max" + }, + { + "text": "AmountTooLow", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "The specified amount is too low. Required at least ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "threshold", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------- |\n| amount | string (numeric) | the amount the user was willing to transfer |\n| threshold | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "amount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": " has not to be less than the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "threshold", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "amount-too-low" + }, + { + "text": "InvalidAddress", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-address" + }, + { + "text": "The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-address" + }, + { + "text": "to", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-address" + }, + { + "text": " address is not valid.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-address" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------- |\n| (none) | string | the error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-address" + }, + { + "text": "InvalidFeePolicy", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-fee-policy" + }, + { + "text": "The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-fee-policy" + }, + { + "text": "fee", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-fee-policy" + }, + { + "text": " is not valid.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-fee-policy" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------- |\n| (none) | string | the error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "invalid-fee-policy" + }, + { + "text": "Response (InvalidFeePolicy error - attempt to use EthGas for UTXO coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-invalid-fee-policy-error-attempt-to-use-eth-gas-for-utxo-coin" + }, + { + "text": "Response (InvalidFeePolicy error - attempt to use UtxoFixed or UtxoPerKbyte for ETH coin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "response-invalid-fee-policy-error-attempt-to-use-utxo-fixed-or-utxo-per-kbyte-for-eth-coin" + }, + { + "text": "NoSuchCoin", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "no-such-coin" + }, + { + "text": "The specified coin was not found or is not activated yet.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "no-such-coin" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------- |\n| coin | string | the not found ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "no-such-coin" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "no-such-coin" + }, + { + "text": " specified in the Request |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "no-such-coin" + }, + { + "text": "Transport", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "transport" + }, + { + "text": "The request was failed due to a network error.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "transport" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------- |\n| (none) | string | the transport error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "transport" + }, + { + "text": "InternalError", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "internal-error" + }, + { + "text": "The request was failed due to an Komodo DeFi API internal error.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "internal-error" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------ |\n| (none) | string | the internal error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "internal-error" + }, + { + "text": "Error cases", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-cases" + }, + { + "text": "Error - Coin not active", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-coin-not-active" + }, + { + "text": "Error - Coin not compatible", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-coin-not-compatible" + }, + { + "text": "Error - Coin enabled without tx_history = true", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-coin-enabled-without-tx-history-true" + }, + { + "text": "Error - Local database failed", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "There are some common objects that are used in the Komodo DeFi SDK RPC protocol. These standard objects have been collected and grouped into the following sections:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Activation", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Activation", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Swaps", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Swaps", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Lightning Network", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Lightning Network", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Non-fungible Tokens", + "tagName": "li", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + }, + { + "text": "Non-fungible Tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/v20", + "closestElementReference": "error-local-database-failed" + } + ], + "komodo-defi-framework/api/v20/message_signing": [ + { + "text": "Signing_and_Verifying_Messages", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "Cryptographically signed messages are a useful feature which can be used to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "prove ownership of an address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "prove ownership of an address", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "If your ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": " file contains the correct ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "sign_message_prefix", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": " parameter value for a coin, you can sign messages with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "Komodo DeFi Framework API", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "coins", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "sign_message_prefix", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "Komodo DeFi Framework API", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "signing-and-verifying-messages" + }, + { + "text": "Sign Message", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "sign-message" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------- |\n| coin | string | The coin to sign a message with |\n| message | string | The message you want to sign |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------- |\n| signature | string | The signature generated for the message |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-success" + }, + { + "text": "⚠ Error types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": "PrefixNotFound:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": " sign_message_prefix is not set in coin config file\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": "CoinIsNotFound:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": " Specified coin is not found\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": "InvalidRequest:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": " Message signing is not supported by the given coin type\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": "InternalError:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": " An internal error occured during the signing process", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types" + }, + { + "text": "Verify Message", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "verify-message" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments-2" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------------------------- |\n| coin | string | The coin to sign a message with |\n| message | string | The message input via the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments-2" + }, + { + "text": "sign_message", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments-2" + }, + { + "text": " method sign |\n| signature | string | The signature generated for the message |\n| address | string | The address used to sign the message |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | ----------------------------------------------------------- |\n| is_valid | boolean | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": " is message signature is valid; ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": " if it is not. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "command-2" + }, + { + "text": "Response (valid)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-valid" + }, + { + "text": "Response (not valid)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "response-not-valid" + }, + { + "text": "⚠ Error types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "PrefixNotFound:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " sign_message_prefix is not set in coin config\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "CoinIsNotFound:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " Specified coin is not found\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "InvalidRequest:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " Message verification is not supported by the given coin type\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "InternalError:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " An internal error occured during the verification process\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "SignatureDecodingError:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " Given signature could not be decoded\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": "AddressDecodingError:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + }, + { + "text": " Given address could not be decoded", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/message_signing", + "closestElementReference": "error-types-2" + } + ], + "komodo-defi-framework/api/v20/my_recent_swaps": [ + { + "text": "my_recent_swaps", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "my_recent_swaps (from_uuid page_number=1 limit=10 my_coin other_coin from_timestamp to_timestamp)", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "my_recent_swaps", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": " method returns the data of the most recent atomic swaps executed by the Komodo DeFi Framework API node. Please note that all filters (my_coin, from_timestamp, etc.) are combined using logical AND.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "my-recent-swaps" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | ------- | ------------------------------------------------------- |\n| my_coin | string | Optional. Coin being used by you for the swap/trade. |\n| other_coin | string | Optional. Coin you are trading against |\n| from_timestamp | integer | Optional. Start timestamp in UNIX format |\n| to_timestamp | integer | Optional. End timestamp in UNIX format |\n| from_uuid | string | Optional. The UUID from which to start fetching results |\n| limit | integer | Optional. The maximum number fo results to return |\n| page_number | integer | Optional. Offset for paginated results |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| swaps | array of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " objects |\n| from_uuid | string | the from_uuid that was set in the request; this value is null if nothing was set |\n| skipped | integer | the number of skipped records (i.e. the position of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " in the list + 1 or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "(page_number - 1) * limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "; the value is 0 if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " were not set or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " is 1) |\n| limit | integer | the limit that was set in the request; note that the actual number of swaps can differ from the specified limit (e.g. on the last page) |\n| total | integer | total number of swaps available with the selected filters |\n| page_number | integer | the page_number that was set in the request; if both ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " are not set in request it will default to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "; if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "from_uuid", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": " is present in request this value will be always null |\n| total_pages | integer | total pages available with the selected filters and limit |\n| found_records | integer | the number of returned swaps |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "SwapStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "example" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "response-success" + }, + { + "text": "Error Responses", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "error-responses" + }, + { + "text": "Invalid UUID", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "invalid-uuid" + }, + { + "text": "Unknown SQL Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_recent_swaps", + "closestElementReference": "unknown-sql-error" + } + ], + "komodo-defi-framework/api/v20/my_tx_history": [ + { + "text": "my_tx_history", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "To use this method, you must activate your coin with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "\"tx_history\": true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": ". The response will vary depending on the coin.\nCurrently only BCH & SLP tokens are supported in the master/release API. In the latest dev API, UTXO coins, QTUM, and Tendermint/Tendermint tokens are also supported.\nFor ZHTLC coins, you must use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "z_coin_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " method.\nFor all other coins, use the legacy ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "z_coin_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "my-tx-history" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "| parameter | Type | Description |\n| --------------- | ------- | ------------------------------------------------------------------------------------------------ |\n| coin | string | Ticker of the coin to get history for. |\n| limit | integer | Optional. Limits the number of returned transactions. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": ". Ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": ". |\n| paging_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "Pagination", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " object. |\n| target | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "HistoryTarget", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "Pagination", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "HistoryTarget", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| transactions | array of objects | transactions data |\n| from_id | string | the from_id specified in the request; this value is null if from_id was not set |\n| skipped | number | the number of skipped records (i.e. the position of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " in the list + 1); this value is 0 if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " was not set |\n| limit | number | the limit that was set in the request; note that the actual number of transactions can differ from the specified limit (e.g. on the last page) |\n| total | number | the total number of transactions available |\n| page_number | number | the page_number that was set in the request |\n| total_pages | number | total pages available with the selected limit |\n| current_block | number | the number of the latest block of coin blockchain |\n| sync_status | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": " object. Provides the information that helps to track the progress of transaction history preloading at background |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response" + }, + { + "text": "HD Wallet Account Request", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "hd-wallet-account-request" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response-2" + }, + { + "text": "HD Wallet Address Request", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "hd-wallet-address-request" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response-4" + }, + { + "text": "Request (TTT-SLP with FromId)", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "request-ttt-slp-with-from-id" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response-5" + }, + { + "text": "Request (IRIS with limit = 50)", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "request-iris-with-limit-50" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/my_tx_history", + "closestElementReference": "response-6" + } + ], + "komodo-defi-framework/api/v20/orderbook": [ + { + "text": "orderbook", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "orderbook base rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "The v2 ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "orderbook", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": " method requests from the network the currently available orders for the specified trading pair.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "orderbook" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------------------------------------------- |\n| base | string | Base currency of a pair |\n| rel | string | Related currency, also known as the \"quote currency\" |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| base | string | The name of the coin the user desires to receive |\n| rel | string | The name of the coin the user will trade |\n| numasks | integer | The number of outstanding asks |\n| numbids | integer | The number of outstanding bids |\n| netid | integer | The id of the network on which the request is made (default is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "8762", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": ") |\n| asks | array of objects | An array of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV2", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " objects containing outstanding asks |\n| bids | array of objects | An array of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV2", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " objects containing outstanding bids |\n| timestamp | integer | A UNIX timestamp representing when the orderbook was requested |\n| total_asks_base_vol | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_asks_rel_vol | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_base_vol | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |\n| total_bids_rel_vol | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV2", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "OrderDataV2", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/orderbook", + "closestElementReference": "response-2" + } + ], + "komodo-defi-framework/api/v20/recreate_swap_data": [ + { + "text": "recreate_swap_data", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "recreate_swap_data", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": " can assist in the event of local stored swap data being lost due to storage errors related to low disk space or hardware failure, and if required, aid with the refunding of failed swaps.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "To source the opposite side of the trade, please ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "contact the Komodo Support team on Discord", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": ". You will need to provide details about the trade you are trying to recover, such as the coins and amounts being traded, the approximate time of the trade, any known transaction IDs involved in the trade, and if available the UUID of the trade.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "contact the Komodo Support team on Discord", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "recreate-swap-data" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |\n| swap | object | Swap data from other side of trade. For example to recreate a Maker's swap data, the input would be the corresponding Taker's swap data |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------------------------------------------------------------------------------------- |\n| result | object | Opposite side's swap data. For example if a Taker's swap data is input, the reponse would be the corresponding Maker's swap data. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/recreate_swap_data", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20/remove_delegation": [ + { + "text": "remove_delegation", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "remove_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": " method stops your node's staking of a compatible coin. Currently QTUM and tQTUM (test tokens avalable at ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "https://testnet-faucet.qtum.info/", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": ") have been integrated, but this functionality will be expanded to more coins in future.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "Note: After running ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "remove_delegation", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": ", you will need to broadcast the returned hex via ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": " to complete the process.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "remove-delegation" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------- |\n| coin | string | the coin being staked |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_delegation", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20/remove_node_from_version_stat": [ + { + "text": "remove_node_from_version_stat", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "remove-node-from-version-stat" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "remove-node-from-version-stat" + }, + { + "text": "remove_node_from_version_stat", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "remove-node-from-version-stat" + }, + { + "text": " method removes a Node (by name) from the local database which tracks which version of MM2 it is running. The name parameter is an arbitrary identifying string, such as \"seed_alpha\" or \"dragonhound_DEV\".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "remove-node-from-version-stat" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------- |\n| name | string | the name assigned to the node |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/remove_node_from_version_stat", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20/sign_raw_transaction": [ + { + "text": "Sign Raw Transaction", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "This method allows users to:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "Create a signed UTXO raw transaction given unsigned hex, and optionally a set of prior transaction inputs.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "Create a signed EVM raw transaction, given the destination address, amount and gas limit.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "The transaction can then be broadcasted to the network using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": " to complete the process.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "This method is used to sign a raw transaction that has already been created.\nFor UTXO coins, the unsigned hex is required to sign the transaction.\nIf ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "prev_txns", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": " is not provided, it will be sourced via electrums.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-raw-transaction" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "request-parameters" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------------------------------------------------------------------------- |\n| coin | string | The coin to sign the raw transaction with |\n| type | string | The operation type. Accepted values: UTXO ( for utxo coins), ETH (for emv coins) |\n| tx | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "request-parameters" + }, + { + "text": "RawTxInfo object", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "request-parameters" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "request-parameters" + }, + { + "text": "RawTxInfo object", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-parameters" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ----------------------------------------------- |\n| tx_hex | string | The signed transaction hex, ready for broadcast |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-parameters" + }, + { + "text": "Sign UTXO raw transaction hex", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-utxo-raw-transaction-hex" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success" + }, + { + "text": "Sign UTXO raw transaction hex with inputs", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "sign-utxo-raw-transaction-hex-with-inputs" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-2" + }, + { + "text": "Signed an ETH/EVM raw transaction", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "signed-an-eth-evm-raw-transaction" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-3" + }, + { + "text": "Once you have signed the raw transaction, dont forget to broadcast it to\nthe network using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-3" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-3" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-3" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "response-success-3" + }, + { + "text": "Errors", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "errors" + }, + { + "text": "Signing Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "signing-error" + }, + { + "text": "You might see this if you try to sign a raw transaction that belongs to a different key pair.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "signing-error" + }, + { + "text": "Invalid Request", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "invalid-request" + }, + { + "text": "Invalid Parameter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "invalid-parameter" + }, + { + "text": "No Such Coin", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "no-such-coin" + }, + { + "text": "Coin does not exist or has not been activated.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/sign_raw_transaction", + "closestElementReference": "no-such-coin" + } + ], + "komodo-defi-framework/api/v20/start_simple_market_maker_bot": [ + { + "text": "start_simple_market_maker_bot", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "The Komodo DeFi Framework API allows for simple bot trading via the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "start_simple_market_maker_bot", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": " method. This method takes as input a url to a price service, and configuration parameters of the pair to trade at a defined spread percentage value. It will update orders every 30 seconds (or higher values if defined with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "bot_refresh_rate", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": " parameter).", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "Note: If using a custom prices API endpoint, please ensure it conforms to the same schema as the url in the example.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "For convenience, an online ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "tool for generating configs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": " is available.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "tool for generating configs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "start-simple-market-maker-bot" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| price_urls | list | Optional. A list of URLs serving price data in JSON format. During each update loop, price data will be sourced from the first working URL in the list. If not defined, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "default list", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " will be used. |\n| bot_refresh_rate | float | Bot loop interval in seconds (optional, 30 sec default) |\n| cfg.name | string | The name assigned to this configuration (e.g. the pair being configured) |\n| cfg.name.base | string | Ticker of the coin you wish to sell |\n| cfg.name.rel | string | Ticker of the coin you wish to buy |\n| cfg.name.max | boolean | Set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " if you would like to trade your whole balance (optional) |\n| cfg.name.max_volume.percentage | string | Percentage of balance to trade (optional; can not use at same time as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max_volume.usd", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "; if greater than 1.0 ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max=true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " is implied) |\n| cfg.name.max_volume.usd | string | Maximum USD trade volume value to trade (optional; can not use at same time as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max_volume.percentage", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "; if greater than full balance ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max=true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " is implied) |\n| cfg.name.min_volume.percentage | string | Minimum percentage of balance to accept in trade (optional, can not use at same time as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "min_volume.usd", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| cfg.name.min_volume.usd | float | Minimum USD trade volume of trades accepted for order (optional, can not use at same time as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "min_volume.percentage", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| cfg.name.min_base_price | float | Minimum USD price of base coin to accept in trade (optional) |\n| cfg.name.min_rel_price | float | Minimum USD price of rel coin to accept in trade (optional) |\n| cfg.name.min_pair_price | float | Minimum USD price of pair (base/rel) to accept in trade (optional) |\n| cfg.name.spread** | string | Target price in relation to prices API value |\n| cfg.name.base_confs | integer | number of required blockchain confirmations for base coin atomic swap transaction; default to base coin configuration if not set |\n| cfg.name.base_nota | boolean | whether dPoW notarization is required for base coin atomic swap transaction; default to base coin configuration if not set |\n| cfg.name.rel_confs | integer | number of required blockchain confirmations for rel coin atomic swap transaction; default to rel coin configuration if not set |\n| cfg.name.rel_nota | boolean | whether dPoW notarization is required for rel coin atomic swap transaction; default to base coin configuration if not set |\n| cfg.name.enable | boolean | Bot will ignore this config entry if set to false |\n| cfg.name.price_elapsed_validity | float | Will cancel current orders for this pair and not submit a new order if last price update time has been longer than this value in seconds (optional; defaults to 5 minutes) |\n| cfg.name.check_last_bidirectional_trade_thresh_hold | boolean | Will readjust the calculated cex price if a precedent trade exists for the pair (or reversed pair), applied via a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "VWAP logic", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " (optional; defaults to false) |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "default list", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "VWAP logic", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "Percentage values are within the range of 0-1, such that 0.25 = 25%", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "For spread, a value of 1.05 equates to 5% over the value returned from the prices API url.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "At least one of the optional fields ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max_volume.usd", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "max_volume.percentage", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": " must be present, or orders will not be placed.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "As demonstrated below, multiple configs can be included within the same command. It is recommended to not exceed 500-1000 simultaneous orders placed to avoid decreased performance.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "In the example below, the first config lets the bot know we want to:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sell DASH in exchange for KMD", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Use whole of available DASH balance, with minimum trade volume accepted as 25% of your balance", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sets the sell price at 2.5% over the value returned from the prices API (spread).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Only accepts values from the prices API that have been updated within the last 30 seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Waits for 3 confirmations and does not wait for a notarisation to progress to the next steps in the atomic swap process", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Checks trade history within the local Komodo DeFi Framework API database to never create trades with a sell price that is less than the average trading price.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "The second config tells the bot to:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sell DASH in exchange for DGB", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Trade at most 50% of your DASH balance, with minimum trade volume accepted at least $20 USD.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Only place an order when the DASH price is $250 USD or more.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sets the sell price at 4% over the value returned from the prices API (spread).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Only accepts values from the prices API that have been updated within the last 60 seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Waits for 1 confirmation and does not wait for a notarisation to progress to the next steps in the atomic swap process", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Ignores your trade history and average trading price, creating/updating orders regardless.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "The third config tells the bot to:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sell DASH in exchange for LTC", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Trade at most $500 USD worth of DASH, with minimum trade volume accepted at least $50 USD.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Only place an order when the DASH price is $250 USD or more.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Sets the sell price at 5% over the value returned from the prices API (spread).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Only accepts values from the prices API that have been updated within the last 60 seconds", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Waits for 1 confirmation and does not wait for a notarisation to progress to the next steps in the atomic swap process", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Ignores your trade history and average trading price, creating/updating orders regardless.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "command" + }, + { + "text": "As we have ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "command" + }, + { + "text": "\\\"bot_refresh_rate\\\": 60,", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "command" + }, + { + "text": " in the above command, our bot loop will update order prices every 60 seconds, as long as the price service returns data that is no more than 30 seconds old (for DASH/KMD) or no more than 60 seconds old (for DASH/DGB).", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - bot already started)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_simple_market_maker_bot", + "closestElementReference": "response-error-bot-already-started" + } + ], + "komodo-defi-framework/api/v20/start_version_stat_collection": [ + { + "text": "start_version_stat_collection", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": "start_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": " method initiates storing version statistics for nodes previously registered via the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": "add_node_to_version_stat", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "start-version-stat-collection" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | ------------------------------------------------ |\n| interval | integer | polling rate (in seconds) to check node versions |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - invalid peer id unable to parse)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/start_version_stat_collection", + "closestElementReference": "response-error-invalid-peer-id-unable-to-parse" + } + ], + "komodo-defi-framework/api/v20/stop_simple_market_maker_bot": [ + { + "text": "stop_simple_market_maker_bot", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "stop-simple-market-maker-bot" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "stop-simple-market-maker-bot" + }, + { + "text": "stop_simple_market_maker_bot", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "stop-simple-market-maker-bot" + }, + { + "text": " method tells the bot to finish placing orders at the end of the current loop (30 seconds minimum & 30 seconds by default). This method takes as input a url to a price service, and configuration parameters of the pairs to trade at a defined spread percentage value.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "stop-simple-market-maker-bot" + }, + { + "text": "At the end of the final loop, orders placed by the bot will be cancelled. Users should wait until the loop ends before exiting the Komodo DeFi Framework API, otherwise orders will not cancel, and will reappear on the orderbook next time Komodo DeFi Framework API starts.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "stop-simple-market-maker-bot" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none ) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - bot already stopped)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_simple_market_maker_bot", + "closestElementReference": "response-error-bot-already-stopped" + } + ], + "komodo-defi-framework/api/v20/stop_version_stat_collection": [ + { + "text": "stop_version_stat_collection", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "stop-version-stat-collection" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "stop-version-stat-collection" + }, + { + "text": "stop_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "stop-version-stat-collection" + }, + { + "text": " method stops the collection of version stats at the end of the current loop interval.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "stop-version-stat-collection" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ---------------- |\n| result | string | success or error |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - stats collection not running)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/stop_version_stat_collection", + "closestElementReference": "response-error-stats-collection-not-running" + } + ], + "komodo-defi-framework/api/v20/telegram_alerts": [ + { + "text": "Telegram Alerts for Market Maker Bot", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "The Komodo DeFi Framework API Market Maker bot can be configured to send status update alerts via ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "Telegram!", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "Telegram!", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "To set this up, you can add some additional parameters to your MM2.json as shown in the example below", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "The extra fields required are:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------- | ------ | ------------------------ |\n| api_key | string | A Telegram bot API token |\n| chat_registry.default | string | A Telegram Chat ID |\n| chat_registry.maker_bot | string | A Telegram Chat ID |\n| chat_registry.swap_events | string | A Telegram Chat ID |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "You can use the same Telegram chat ID for all three ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "chat_registry", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": " subfields, or sent your alerts to a different chat ID if you want to separate the alerts by type.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "To get a Telegram bot API token, you need to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "have chat with the BotFather", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "have chat with the BotFather", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "To get a Telegram chat ID, check out ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "this guide", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + }, + { + "text": "this guide", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/telegram_alerts", + "closestElementReference": "telegram-alerts-for-market-maker-bot" + } + ], + "komodo-defi-framework/api/v20/trade_preimage": [ + { + "text": "trade_preimage", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " method returns the approximate fee amounts that are paid per the whole swap.\nDepending on the parameters, the function returns different results:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "If the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", then the result will include the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " and the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "fee_to_send_taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".\nThe ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "taker_fee", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " amount is paid from the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "base", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " coin balance if the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", else it is paid from the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "rel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " coin balance;", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "If the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " field is true, then the result will include the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "This method can be used instead of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max_taker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ", if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " field is true and the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".\nUse the resulting ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " as an argument of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " requests.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "trade_preimage", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " request with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "swap_method = \"setprice\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " arguments to approximate the fee amounts ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "only", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ". Do not use the resulting ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": " as an argument of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "trade-preimage" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n| base | string | the base currency of the request |\n| rel | string | the rel currency of the request |\n| swap_method | string | the name of the method whose preimage is requested. Possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " |\n| price | numeric string or rational | the price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " the user is willing to pay per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " coin |\n| volume | numeric string or rational (optional) | the amount the user is willing to trade; ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "and", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "swap_method = setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": ", otherwise, it must be set |\n| max | bool (optional) | whether to return the maximum available volume for ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " method; must not be set or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "sell", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "arguments" + }, + { + "text": "Result", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| base_coin_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object. The approximate miner fee is paid per the whole swap concerning the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " coin |\n| rel_coin_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object. The approximate miner fee is paid per the whole swap concerning the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " coin |\n| volume | string (numeric) | Optional. The max available volume that can be traded (in decimal representation); empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " argument is missing or false |\n| volume_rat | rational | Optional. The max available volume that can be traded represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "RationalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object.; empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " argument is missing or false |\n| volume_fraction | fraction | Optional. The max available volume that can be traded represented as a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "fractionalValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object.; empty if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " argument is missing or false |\n| taker_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object. The dex fee to be paid by Taker; empty if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " |\n| fee_to_send_taker_fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object. The approximate miner fee is paid to send the dex fee; empty if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "swap_method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "setprice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " |\n| total_fees | array of objects | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "TotalFeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": " object. Each element is a sum of fees required to be paid from user's balance of corresponding ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo.coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "; the elements are unique by coin |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "RationalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "fractionalValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "ExtendedFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "TotalFeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "result" + }, + { + "text": "⚠ Error types", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "error-types" + }, + { + "text": "NotSufficientBalance", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "available", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": " balance of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": " is not sufficient to start the swap.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | -------------------------- | ----------------------------------------------------------------------------------------- |\n| coin | string | the name of the coin which balance is not sufficient |\n| available | string (numeric) | the balance available for swap, including the amount locked by other swaps |\n| required | string (numeric) | the amount required to start the swap. This amount is necessary but may not be sufficient |\n| locked_by_swaps | string (numeric, optional) | the amount locked by other swaps |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-balance" + }, + { + "text": "NotSufficientBaseCoinBalance", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": "The available balance of the base ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": " is not sufficient to pay transaction fees.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": "For example, ERC20 fees are paid by ETH (gas), and this error type is returned if the ETH coin balance is not sufficient to start the swap.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": "| Structure | Type | Description |\n| ----------------- | -------------------------- | ----------------------------------------------------------------------------------------- |\n| coin | string | the name of the base coin which balance is not sufficient |\n| available | string (numeric) | the balance available for swap, including the amount locked by other swaps |\n| required | string (numeric) | the amount required to start the swap. This amount is necessary but may not be sufficient |\n| locked_by_swaps | string (numeric, optional) | the amount is locked by other swaps |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "not-sufficient-base-coin-balance" + }, + { + "text": "VolumeTooLow", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " is too low. Required at least ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "threshold", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "If the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " field returned in Response is the same as the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " argument in Request, then the base volume threshold can be calculated as follows:\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "base_coin_threshold = rel_vol_threshold / price", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | -------------------------------------------------- |\n| coin | string | either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " coin specified in Request |\n| volume | string (numeric) | the amount the user was willing to trade in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " |\n| threshold | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "volume", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": " has not to be less than this amount |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "volume-too-low" + }, + { + "text": "NoSuchCoin", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": "The specified coin was not found or is not activated yet.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------ |\n| coin | string | either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": " coin specified in Request |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "no-such-coin" + }, + { + "text": "CoinIsWalletOnly", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": "The specified coin is wallet only and cannot be participated in the swap.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------ |\n| coin | string | either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": " coin specified in Request |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "coin-is-wallet-only" + }, + { + "text": "BaseEqualRel", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "base-equal-rel" + }, + { + "text": "The coin is wallet only and cannot be participated in the swap.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "base-equal-rel" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "base-equal-rel" + }, + { + "text": "InvalidParam", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "invalid-param" + }, + { + "text": "Incorrect use of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "invalid-param" + }, + { + "text": "param", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "invalid-param" + }, + { + "text": " parameter in Request.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "invalid-param" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------------------------ |\n| param | string | the name of the parameter in Request |\n| reason | string | the reason why the parameter is used incorrectly |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "invalid-param" + }, + { + "text": "PriceTooLow", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "The specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": " is too low.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------- |\n| price | string (numeric) | the price in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "rel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": " the user was willing to receive per one unit of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "base", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": " coin |\n| threshold | string (numeric) | the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "price", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": " has not to be less than this amount |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "price-too-low" + }, + { + "text": "Transport", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "transport" + }, + { + "text": "The request was failed due to a network error.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "transport" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------- |\n| (none) | string | the transport error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "transport" + }, + { + "text": "InternalError", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "internal-error" + }, + { + "text": "The request was failed due to a Komodo DeFi Framework API internal error.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "internal-error" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | ------------------------------ |\n| (none) | string | the internal error description |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "internal-error" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "examples" + }, + { + "text": "Command (setprice)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "command-setprice" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response" + }, + { + "text": "Command (buy)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "command-buy" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-2" + }, + { + "text": "Command (sell, max)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "command-sell-max" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-3" + }, + { + "text": "Command (ERC20 and QRC20)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "command-erc-20-and-qrc-20" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-4" + }, + { + "text": "Response (NotSufficientBalance error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-not-sufficient-balance-error" + }, + { + "text": "Response (VolumeTooLow error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-volume-too-low-error" + }, + { + "text": "Response (Transport error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-transport-error" + }, + { + "text": "Response (incorrect use of \"max\" error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/trade_preimage", + "closestElementReference": "response-incorrect-use-of-max-error" + } + ], + "komodo-defi-framework/api/v20/update_version_stat_collection": [ + { + "text": "update_version_stat_collection", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "update-version-stat-collection" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "update-version-stat-collection" + }, + { + "text": "update_version_stat_collection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "update-version-stat-collection" + }, + { + "text": " method updates the polling interval for version stats collection. Note: the new interval will take effect after the current interval loop has completed.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "update-version-stat-collection" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | ------------------------------------------------ |\n| interval | integer | polling rate (in seconds) to query node versions |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "arguments" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - stats collection not running)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/update_version_stat_collection", + "closestElementReference": "response-error-stats-collection-not-running" + } + ], + "komodo-defi-framework/api/v20/withdraw": [ + { + "text": "withdraw", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " method generates, signs, and returns a transaction that transfers the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "amount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " to the address indicated in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "to", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": " argument.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "This method generates a raw transaction which should then be broadcast using ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------------------------------- |\n| coin | string | The name of the coin the user desires to withdraw |\n| to | string | Coins are withdrawn to this address |\n| amount | string (numeric) | The amount the user desires to withdraw, ignored when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "max=true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| memo | string | Optional. Adds a transaction memo for compatible coins (e.g. Tendermint ecosystem). |\n| max | bool | Withdraw the maximum available amount |\n| fee | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "FeeInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": " object. |\n| from | object | HD wallets only. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "WithdrawFromInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "FeeInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "WithdrawFromInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| ---------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| from | array of strings | coins are withdrawn from this address; the array contains a single element, but transactions may be sent from several addresses (UTXO coins) |\n| to | array of strings | coins are withdrawn to this address; this may contain the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " address, where change from UTXO coins is sent |\n| my_balance_change | string (numeric) | the expected balance of change in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " after the transaction broadcasts |\n| received_by_me | string (numeric) | the amount of coins received by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " after the transaction broadcasts; the value may be above zero when the transaction requires that the Komodo DeFi Framework API send change to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " |\n| spent_by_me | string (numeric) | the amount of coins spent by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "; this value differ from the request amount, as the transaction fee is added here |\n| total_amount | string (numeric) | the total amount of coins transferred |\n| fee_details | object | the fee details of the generated transaction; this value differs for utxo and ETH/ERC20 coins, check the examples for more details |\n| tx_hash | string | the hash of the generated transaction |\n| tx_hex | string | transaction bytes in hexadecimal format; use this value as input for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " method |\n| coin | string | the name of the coin the user wants to withdraw |\n| kmd_rewards | object (optional) | an object containing information about accrued rewards; always exists if the coin is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "KMD", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": " |\n| kmd_rewards.amount | string (numeric, optional) | the amount of accrued rewards |\n| kmd_rewards.claimed_by_me | bool (optional) | whether the rewards been claimed by me |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "examples" + }, + { + "text": "Withdraw BTC, KMD, and other BTC-based forks", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-btc-kmd-and-other-btc-based-forks" + }, + { + "text": "Response (KMD success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-kmd-success" + }, + { + "text": "HD Withdraw with derivation_path", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "hd-withdraw-with-derivation-path" + }, + { + "text": "Response (KMD success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-kmd-success-2" + }, + { + "text": "HD Withdraw with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": "account_id", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": ", ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": "chain", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": " and ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": "address_id", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "address-id" + }, + { + "text": "Response (KMD success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-kmd-success-3" + }, + { + "text": "Withdraw BTC, KMD, and other BTC-based forks, fixed fee", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-btc-kmd-and-other-btc-based-forks-fixed-fee" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success" + }, + { + "text": "Withdraw BTC, KMD, and other BTC-based forks, 1 coin per Kbyte fee", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-btc-kmd-and-other-btc-based-forks-1-coin-per-kbyte-fee" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success-2" + }, + { + "text": "Withdraw ETH, ERC20, and other ETH-based forks", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-eth-erc-20-and-other-eth-based-forks" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success-3" + }, + { + "text": "ETH/ERC20 and other ETH-based forks, with gas fee", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "eth-erc-20-and-other-eth-based-forks-with-gas-fee" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success-4" + }, + { + "text": "Withdraw maximum", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-maximum" + }, + { + "text": "Response (success)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success-5" + }, + { + "text": "Withdraw QRC20 coins", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-qrc-20-coins" + }, + { + "text": "Response (success)", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "response-success-6" + }, + { + "text": "Withdraw QRC20 coins with gas limit", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-qrc-20-coins-with-gas-limit" + }, + { + "text": "Withdraw Tendermint coins with a memo and custom gas fee", + "tagName": "h5", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-tendermint-coins-with-a-memo-and-custom-gas-fee" + }, + { + "text": "You can see the memo is included on the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-tendermint-coins-with-a-memo-and-custom-gas-fee" + }, + { + "text": "block explorer", + "tagName": "p", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-tendermint-coins-with-a-memo-and-custom-gas-fee" + }, + { + "text": "block explorer", + "tagName": "a", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "withdraw-tendermint-coins-with-a-memo-and-custom-gas-fee" + }, + { + "text": "Error Responses", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "error-responses" + }, + { + "text": "InvalidRequest: Unknown fee type", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "invalid-request-unknown-fee-type" + }, + { + "text": "InvalidRequest: wrong parameter type", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "invalid-request-wrong-parameter-type" + }, + { + "text": "InvalidFeePolicy: attempt to use EthGas for UTXO coin", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20/withdraw", + "closestElementReference": "invalid-fee-policy-attempt-to-use-eth-gas-for-utxo-coin" + } + ], + "komodo-defi-framework/api/v20-dev/get_current_mtp": [ + { + "text": "get_current_mtp", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "get-current-mtp" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "get-current-mtp" + }, + { + "text": "get_current_mtp", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "get-current-mtp" + }, + { + "text": " method returns the Median Time Past (MTP) from electrum servers for UTXO coins. This information is useful for debugging, specifically in cases where an electrum server has been misconfigured.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "get-current-mtp" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------------------------------------- |\n| coin | string | A compatible (UTXO) coin's ticker |\n| id | integer | Optional. Identifies a request to allow matching it with a response. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "arguments" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "arguments" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | ------------------------------------------------------------------------------------------------------------- |\n| mtp | integer | Unix timestamp |\n| id | integer | Identifies a response to allow matching it with a request. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": " if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": "id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": " not provided in request |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_current_mtp", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20-dev/get_locked_amount": [ + { + "text": "get_locked_amount", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": "get_locked_amount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": " method returns the amount of a coin which is currently locked by a swap which is in progress. If the coin is not activated, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": "NoSuchCoin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": " error will be returned.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "get-locked-amount" + }, + { + "text": "Arguments", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ----------------------------------------- |\n| coin | string | The ticker of the coin you want to query. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | --------------- | ------------------------------------------------------------------------------------------------ |\n| coin | string | The ticker of the coin you queried. |\n| locked_amount | object | An object cointaining the locked amount in decimal, fraction and rational formats. |\n| locked_amount.decimal | numeric string | The locked amount in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "decimal format", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": ". |\n| locked_amount.rational | rational object | The locked amount in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "rational format", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": ". |\n| locked_amount.fraction | fraction object | The locked amount in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "fraction format", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "decimal format", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "rational format", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "fraction format", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/get_locked_amount", + "closestElementReference": "response-error" + } + ], + "komodo-defi-framework/api/v20-dev/hd_address_management": [ + { + "text": "Hierarchical Deterministic Address Management", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "A hierarchical-deterministic (HD) wallet generates a new key pair from a master key pair, allowing for multiple addresses to be generated from the same seed so that change from transactions go to a previously unused address, enhancing privacy and security. The hierarchical structure resembles that of a tree, with the master key “determining” the key pairs that follow it in the hierarchy. If you have activated a coin with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": " and used the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "\"priv_key_policy\": \"Trezor\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": " parameter, you can use the methods below to generate new addresses.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "hierarchical-deterministic-address-management" + }, + { + "text": "get_new_address", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "get-new-address" + }, + { + "text": "If we don't already have too many unused addresses, we can use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "get-new-address" + }, + { + "text": "get_new_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "get-new-address" + }, + { + "text": " method to generate a new address. The generated address will be shown in account_balance and init_account_balance RPCs and on the next coin activation.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "get-new-address" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you want to get a new address for |\n| account_id | integer | Generally this will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": " unless you have multiple accounts registered on your Trezor |\n| chain | string | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": ". Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": ". External is used for addresses that are intended to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used to return the leftover change from a transaction. |\n| gap_limit | integer | Optional. The maximum number of empty addresses in a row. Defaults to the value provided on activation or 20 if no value was provided |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| ------------ | ------ | ------------------------------------------------------------------------------------- |\n| new_address | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "NewAddressInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "NewAddressInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "Some reasons you might not be able to get a new address are:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "EmptyAddressesLimitReached", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": " - Last gap_limit addresses are still unused.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "AddressLimitReached", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": " - Addresses limit reached. Currently, the limit is ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "2^31", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "2^31", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-success" + }, + { + "text": "task_scan_for_new_addresses_init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "task-scan-for-new-addresses-init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you want to scan addresses for |\n| account_id | integer | Optional, HD wallets only. Generally this will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-2" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-2" + }, + { + "text": " unless you have multiple accounts registered on your HD wallet |\n| gap_limit | integer | Optional. The maximum number of empty addresses in a row. Defaults to the value provided on activation or 20 if no value was provided |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-2" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "command-2" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-success-2" + }, + { + "text": "task_scan_for_new_addresses_status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "task-scan-for-new-addresses-status" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "task-scan-for-new-addresses-status" + }, + { + "text": "task::scan_for_new_addresses::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "task-scan-for-new-addresses-status" + }, + { + "text": " method to query the status of a HD address scanning task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "task-scan-for-new-addresses-status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the withdrawal process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------------------------------- |\n| status | string | Status of the task. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "Ok", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": ". |\n| details | string or object | Once complete, a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "ScanAddressesInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "ScanAddressesInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "command-3" + }, + { + "text": "Response (success, no new address found)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-success-no-new-address-found" + }, + { + "text": "Response (success, new address found)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/hd_address_management", + "closestElementReference": "response-success-new-address-found" + } + ], + "komodo-defi-framework/api/v20-dev/hd_wallets_overview": [ + { + "text": "HD Wallets Overview", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Hierarchical Deterministic (HD) Wallets", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " are different to other wallets, as they use a key pair management system that allows generating multiple new addresses from a single seed phrase or private key.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Hierarchical Deterministic (HD) Wallets", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Hierarchical", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " refers to the structure of HD wallets, which resembles a tree, where parent keys can produce children keys, which can produce grandchildren keys, and so on, all from the same root seed.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Deterministic", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " means that the addresses generated in this tree will always be the same for the same root seed phrase.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "HD wallets offer several advantages over traditional wallets:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Convenience: HD wallets allow users to generate multiple public and private keys from a single seed phrase, making it easier to manage multiple addresses in one place.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Privacy: HD wallets can generate new addresses for each transaction, making it more difficult for malicious parties to track a user’s transaction history.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Access Control: A user who controls the root seed can create new addresses & keypairs which can be shared with a 3rd party, providing limited or regulated access to funds held under specific pairs.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "To use HD wallet functionality with the Komodo DeFi Framework API, you must include ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "\"enable_hd\":true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " in your ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " file.\nHardware wallets like ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " are always in HD mode, and this parameter ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "must", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": " to be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Trezor", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "In some cases, the methods used to interact with HD wallets are the same as those used with legacy wallets. However, there are some differences, which are detailed in the links below.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "hd-wallets-overview" + }, + { + "text": "Initialisation and authentication (Hardware wallets only):", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "Initialise connection with your Trezor with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "Check the status of the connecton with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "Cancel authentication process with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::cancel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "Authenticate using PIN or phrase with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "These methods (and others with a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task::", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": " prefix) will be linked to a numeric\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": " value which is used to query the status or outcome of the task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "initialisation-and-authentication-hardware-wallets-only" + }, + { + "text": "UTXO & QTUM Coin Activation in HD Mode:", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "As HD mode activation performs address scanning to return addresses and balances for enabled accounts, we use ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " methods because fetching this data can take some time.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Use ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " for UTXO coins like KMD, BTC and DOGE.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Check the activation status with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Authenticate the activation with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::user_action", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " (hardware wallet only)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_utxo::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Use ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " for QTUM Ecosystem coins.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Check the activation status with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Authenticate the activation with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::user_action", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " (hardware wallet only)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "task::enable_qtum::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "When using the activation methods with a Trezor, ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "\"priv_key_policy\": \"Trezor\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": " needs to be included in the request.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "utxo-and-qtum-coin-activation-in-hd-mode" + }, + { + "text": "Withdrawing your Funds:", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Prepare a transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "withdraw (v2)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "withdraw (v2)", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Broadcast the transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "send_raw_transaction", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Prepare a transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Check the status of the transaction preparation with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Cancel the transaction preparation with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::cancel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "task::withdraw::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Not sure if these are still active?", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "withdrawing-your-funds" + }, + { + "text": "Viewing Hardware Wallet Coin Balances:", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "Initialise the balance request with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "task::account_balance::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "task::account_balance::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "Check the status of the balance request with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "task::account_balance::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "task::account_balance::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-hardware-wallet-coin-balances" + }, + { + "text": "Creating New Addresses:", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "creating-new-addresses" + }, + { + "text": "TODO: add this item back after the method is redocumented", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-this-item-back-after-the-method-is-redocumented" + }, + { + "text": "Use ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-this-item-back-after-the-method-is-redocumented" + }, + { + "text": "get_new_address", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-this-item-back-after-the-method-is-redocumented" + }, + { + "text": " to generate a new address", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-this-item-back-after-the-method-is-redocumented" + }, + { + "text": "get_new_address", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-this-item-back-after-the-method-is-redocumented" + }, + { + "text": "Viewing Transaction History:", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "Transaction history using an ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "account_id", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "my_tx_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "Transaction history using an ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "address_id", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "my_tx_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "viewing-transaction-history" + }, + { + "text": "TODO: Add hashlinks to the above methods", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/hd_wallets_overview", + "closestElementReference": "todo-add-hashlinks-to-the-above-methods" + } + ], + "komodo-defi-framework/api/v20-dev": [ + { + "text": "Komodo DeFi Framework API RPC Protocol v2.0 (Dev)", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "Starting with version ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "beta-2.1.3434", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": ", the Komodo DeFi Framework API supports the standardized protocol format called ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "mmrpc 2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "beta-2.1.3434", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "It includes a uniform request, successful and error response formats. At the moment, only a few RPC methods support the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "mmrpc 2.0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": " protocol.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "komodo-de-fi-framework-api-rpc-protocol-v2-0-dev" + }, + { + "text": "Request", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi Framework API RPC protocol. Must be exactly \"2.0\" |\n| userpass | string (optional) | your password for protected RPC methods. Skip this field if the specified ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": "method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": " is public |\n| method | string | the name of the method to be invoked |\n| params | object (optional) | a structured value that holds the parameter values to be used during the invocation of the method. This field may be omitted if the method doesn't take arguments |\n| id | number (optional) | the identifier is established by the client. Komodo DeFi Framework API will reply with the same value in the Response object if the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": "id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": " field is included and not ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": "NULL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "request" + }, + { + "text": "Response (Success)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-success" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ----------------- | ------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi Framework API RPC protocol |\n| result | object | the value of this field is determined by the method invoked on Komodo DeFi Framework API |\n| id | number (optional) | the identifier established by the client. The same value as in the Request if it was passed |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-success" + }, + { + "text": "Response (Error)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-error" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ----------------- | ------------------------------------------------------------------------------------------- |\n| mmrpc | string | the string specifying the version of the Komodo DeFi Framework API RPC protocol |\n| error | string | the common error description |\n| error_path | string | the error path consisting of file names separated by a dot similar to JSON path notation |\n| error_trace | string | the error path consisting of file and line number pairs separated by ']' |\n| error_type | string | the string error identifier used to determine the cause of the error |\n| error_data | object | an object containing the error data of the corresponding ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-error" + }, + { + "text": "error_type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-error" + }, + { + "text": " |\n| id | number (optional) | the identifier established by the client. The same value as in the Request if it was passed |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-error" + }, + { + "text": "📌 Examples", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-success-2" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev", + "closestElementReference": "response-error-2" + } + ], + "komodo-defi-framework/api/v20-dev/lightning/activation": [ + { + "text": "Lightning Network Initialization Tasks", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Lightning methods are currently only available using the native Komodo DeFi Framework. WASM support should be available in late 2023.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Initialize Lightning", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "task::enable_lightning::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": " request a task to run a lightning node. Use the returned ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": " as an input to check the status of the lightning node (i.e, running or still initiating). An error will be returned if a lightning node was already running for the requested ticker.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "Any methods with a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "task::", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": " prefix will be linked to a numeric ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": " value which is used to query the status or outcome of the task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialize-lightning" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of coin to activate |\n| activation_params | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningActivationParams", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningActivationParams", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "example" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response" + }, + { + "text": "L2ConfigIsNotFound Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": "Coin is not in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": " file. Refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": "coins file configuration for lightning", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": "coins file configuration for lightning", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "l2-config-is-not-found-error" + }, + { + "text": "InvalidRequest Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-request-error" + }, + { + "text": "A parameter is incorrect.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-request-error" + }, + { + "text": "UnexpectedL2Protocol Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "unexpected-l2-protocol-error" + }, + { + "text": "Coin is wrong protocol type.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "unexpected-l2-protocol-error" + }, + { + "text": "Internal Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "internal-error" + }, + { + "text": "Address already in use.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "internal-error" + }, + { + "text": "PlatformCoinIsNotActivated Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "platform-coin-is-not-activated-error" + }, + { + "text": "The selected coin is not activated. It needs to be activated before the lightning node can be initialized.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "platform-coin-is-not-activated-error" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1197550229", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "platform-coin-is-not-activated-error" + }, + { + "text": "\nAnother bug found, will fix it in an upcoming PR. Platform coin should be tBTC-segwit. You can leave as it is in docs until I fix it.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "platform-coin-is-not-activated-error" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1197550229", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "platform-coin-is-not-activated-error" + }, + { + "text": "InvalidPlatformConfiguration Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-platform-configuration-error" + }, + { + "text": "Coin's configuration is missing a required parameter. Refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-platform-configuration-error" + }, + { + "text": "coins file configuration for lightning", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-platform-configuration-error" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-platform-configuration-error" + }, + { + "text": "coins file configuration for lightning", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "invalid-platform-configuration-error" + }, + { + "text": "Initialization Status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialization-status" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialization-status" + }, + { + "text": "task::enable_lightning::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialization-status" + }, + { + "text": " request checks the status of lightning node initialization.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "initialization-status" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |\n| task_id | integer | The task id returned from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "task::enable_lightning::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": " |\n| forget_if_finished | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": ", the status of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": " will still be available after the task has completed. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-2" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "example-2" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------ | ------------------------------------------------------------------------------ |\n| platform_coin | string | The coin ticker for which the lightning node is being intitialized. |\n| address | string | This node's address for the activated coin. |\n| balance | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": "BalanceInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": "BalanceInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": "The unspendable balance for lightning is different to a layer-1 unspendable balance. The channel reserve is part of the unspendable balance in lightning - the user will get this part of the balance on chain when closing the channel, but it can't be spent on layer 2 (lightning) because it's part of the security mechanism to prevent channel breaches and ensure that both parties fulfill their obligations within the channel.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-parameters-2" + }, + { + "text": "Response (ready, success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "In the above response spendable will always be 0 since the balance is unspendable until connections with lightning channels counterparties are established.\nUsing the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "my_balance", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": " method after the coin is activated will get the spendable balance depending on how many channel counterparties are online.\nFor exact channels balances and which channels are usable, use ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "lightning::channels::list_open_channels_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "my_balance", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "lightning::channels::list_open_channels_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-ready-success" + }, + { + "text": "Response (in progress state)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "Possible in progress statuses:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "ActivatingCoin", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "GettingFeesFromRPC", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "ReadingNetworkGraphFromFile", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "InitializingChannelManager", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "InitializingPeerManager", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "ReadingScorerFromFile", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "InitializingBackgroundProcessor", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "ReadingChannelsAddressesFromFile", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-in-progress-state" + }, + { + "text": "Cancel Initialization", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "cancel-initialization" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "cancel-initialization" + }, + { + "text": "task::enable_lightning::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "cancel-initialization" + }, + { + "text": " request cancels lightning node initialization.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "cancel-initialization" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | -------------------------------------------------------- |\n| task_id | integer | The task id returned from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-3" + }, + { + "text": "task::enable_lightning::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-3" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "request-parameters-3" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "example-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "response-2" + }, + { + "text": "TaskFinished Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "task-finished-error" + }, + { + "text": "Task has already been completed.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/activation", + "closestElementReference": "task-finished-error" + } + ], + "komodo-defi-framework/api/v20-dev/lightning/channels": [ + { + "text": "Lightning Network Channels", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "lightning-network-channels" + }, + { + "text": "Lightning methods are currently only available using the native Komodo DeFi Framework. WASM support should be available in late 2023.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "lightning-network-channels" + }, + { + "text": "Open Channel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "open-channel" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "open-channel" + }, + { + "text": "lightning::channels::open_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "open-channel" + }, + { + "text": " method opens a new channel with a remote node.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "open-channel" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to open a channel for. |\n| node_address | string | Lightning node addresses always have a format of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "node_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "@", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "ip_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "port", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": ". |\n| amount | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelAmount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |\n| push_msat | integer | Optional. The amount in millisatoshi to push to the counterparty while openning, to create inbound liquidity for the channel. Using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "push_msat", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": " parameter avoids having to send funds in a separate request later. Please note that the funds given using push_msat is given unconditionally, meaning that there is no proof of payment in a preimage as with paying an invoice. |\n| channel_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelOptions", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |\n| channel_configs | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelConfig", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelAmount", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelOptions", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "LightningChannelConfig", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example using an exact amount", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-using-an-exact-amount" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response" + }, + { + "text": "📌 Example using max available with channel options and configs", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-using-max-available-with-channel-options-and-configs" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-2" + }, + { + "text": "Close Channel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "close-channel" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "close-channel" + }, + { + "text": "lightning::channels::close_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "close-channel" + }, + { + "text": " method closes a channel with a remote node.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "close-channel" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "| Parameter | Type | Description |\n| ------------ | ------- | ---------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to close a channel for. |\n| uuid | string | Unique channel identifier. |\n| force_close | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": ", will force closure of the channel. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "It is not recommended to force close a channel unless the counterparty is offline or unreachable for a long time.\nForce closure of a channel will makeresult in the party who initiates the force closure to wait for a number of blocks (equal to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "force_close_spend_delay", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": " value returned by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": ") before they can get their funds on chain.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-2" + }, + { + "text": "📌 Example to force closing a channel", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-force-closing-a-channel" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "To see if the channel is closed or not, use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "Already added this message to the response in this upcoming PR KomodoPlatform/komodo-defi-framework#1814, also added force_close_spend_delay to the close channel response. No need to change the docs now until this PR is merged KomodoPlatform/komodo-defi-framework#1814, I will write a comment about all the changes when opening the PR for review.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1202462310", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1202462310", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-3" + }, + { + "text": "InvalidRequest Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "invalid-request-error" + }, + { + "text": "NoSuchChannel Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "no-such-channel-error" + }, + { + "text": "Update Channel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "update-channel" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "update-channel" + }, + { + "text": "lightning::channels::update_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "update-channel" + }, + { + "text": " method updates channel options.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "update-channel" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-3" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to update channel configuration options for. |\n| uuid | string | Unique channel identifier. |\n| channel_options | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-3" + }, + { + "text": "LightningChannelOptions", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-3" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-3" + }, + { + "text": "LightningChannelOptions", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-3" + }, + { + "text": "📌 Example to update all available channel options", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-4" + }, + { + "text": "NoSuchChannel Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "no-such-channel-error-2" + }, + { + "text": "Channel with the given uuid is not foun on the lightning network.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "no-such-channel-error-2" + }, + { + "text": "Get Channel Details", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-channel-details" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-channel-details" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-channel-details" + }, + { + "text": " method returns details about a channel.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-channel-details" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-4" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ------------------------------------------------------------------ |\n| coin | string | The ticker of the coin you would like to view channel details for. |\n| uuid | string | Unique channel identifier. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-4" + }, + { + "text": "📌 Example to update all available channel options", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": "The response will vary depending on whether the channel status is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": "open", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": "closed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-2" + }, + { + "text": "Response (opened channel)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-opened-channel" + }, + { + "text": "force_close_spend_delay", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-opened-channel" + }, + { + "text": " is not currently available in get_channel_details response, but should be added soon.\nIt's configured by the other side using counterparty_locktime where we are the counterparty to the other side, the other side gets to set it since it's part of their security considerations since they have to be online at least once during this period if we tried to steal funds by broadcasting an old commitment transaction. We set our own too in our configs where it shows in the channel details of the other side as force_close_spend_delay. The other side can't set counterparty_locktime to any value when opening the channel though, since they can set it to a very long time and our funds will be locked for a very long time if we force closed the channel, this is where counterparty_channel_config_limits::our_locktime_limit comes in as the other side can't make counterparty_locktime larger than this limit otherwise the channel gets rejected and is never opened in the first place.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-opened-channel" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206109172", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-opened-channel" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206109172", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-opened-channel" + }, + { + "text": "Response (closed channel)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-closed-channel" + }, + { + "text": "The closed response above was spoofed, so the values are not accurate. Once code is finalised we should generate a real one.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-closed-channel" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206150595", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-closed-channel" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206150595", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-closed-channel" + }, + { + "text": "InvalidRequest Error", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "invalid-request-error-2" + }, + { + "text": "Get Claimable Balances", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-claimable-balances" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-claimable-balances" + }, + { + "text": "lightning::channels::get_claimable_balances", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-claimable-balances" + }, + { + "text": " method returns a list of claimable balances for a coin.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "get-claimable-balances" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": "| Parameter | Type | Description |\n| --------------------------------- | ------- | ------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to view claimable balances for. |\n| include_open_channels_balances | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": ", includes balances from open channels. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-5" + }, + { + "text": "📌 Example to update all available channel options", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "example-to-update-all-available-channel-options-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-5" + }, + { + "text": "This response may include additional information in future.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-5" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206152132", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-5" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx/pull/31#discussion\\_r1206152132", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-5" + }, + { + "text": "List Open Channels by Filter", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-open-channels-by-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-open-channels-by-filter" + }, + { + "text": "lightning::channels::list_open_channels_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-open-channels-by-filter" + }, + { + "text": " method returns a list of open channels filtered by the provided filter object.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-open-channels-by-filter" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to view open channels for. |\n| filter | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "LightningOpenChannelsFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": " object. |\n| paging_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "Pagination", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": " object. |\n| limit | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": ". Maximum number of results to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "LightningOpenChannelsFilter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "Pagination", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-6" + }, + { + "text": "📌 Example without using ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter" + }, + { + "text": " parameter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-6" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only" + }, + { + "text": " for inbound channels only", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-7" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id" + }, + { + "text": " for a specific ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id" + }, + { + "text": "node_id", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-8" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value" + }, + { + "text": " for a node with between 100000 and 500000 satoshi funding value", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-9" + }, + { + "text": "List Closed Channels by Filter", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-closed-channels-by-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-closed-channels-by-filter" + }, + { + "text": "lightning::channels::list_closed_channels_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-closed-channels-by-filter" + }, + { + "text": " method returns a list of closed channels filtered by the provided filter object.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "list-closed-channels-by-filter" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you would like to view closed channels for. |\n| filter | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "LightningClosedChannelsFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": " object. |\n| paging_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "Pagination", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": " object. |\n| limit | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": ". Maximum number of results to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "LightningClosedChannelsFilter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "Pagination", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "request-parameters-7" + }, + { + "text": "📌 Example without using ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter-2" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter-2" + }, + { + "text": " parameter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "parameter-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-10" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only-2" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only-2" + }, + { + "text": " for inbound channels only", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-inbound-channels-only-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-11" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id-2" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id-2" + }, + { + "text": " for a specific ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id-2" + }, + { + "text": "node_id", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "node-id-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-12" + }, + { + "text": "📌 Example with ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value-2" + }, + { + "text": "filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value-2" + }, + { + "text": " for a node with between 100000 and 500000 satoshi funding value", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "for-a-node-with-between-100000-and-500000-satoshi-funding-value-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "command-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/channels", + "closestElementReference": "response-13" + } + ], + "komodo-defi-framework/api/v20-dev/lightning": [ + { + "text": "Lightning Network Methods", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-methods" + }, + { + "text": "Lightning methods are currently only available using the native Komodo DeFi Framework.\nWASM support should be available in late 2023.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-methods" + }, + { + "text": "Lightning Network Initialization Tasks", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Initialise your lightning node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Check the initialization status of the lightning node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Cancel initialization process of the lightning node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::cancel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::enable_lightning::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Any methods with a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task::", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": " prefix will be linked to a numeric ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": " value\nwhich is used to query the status or outcome of the task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-initialization-tasks" + }, + { + "text": "Lightning Network Nodes Methods", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "Connect to a lightning node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "Add a trusted node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::add_trusted_node", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::add_trusted_node", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "Remove a trusted node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::remove_trusted_node", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::remove_trusted_node", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "List your trusted lightning nodes with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::list_trusted_nodes", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "lightning::nodes::list_trusted_nodes", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-nodes-methods" + }, + { + "text": "Lightning Network Channels Methods", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Open a lightning channel ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::open_channel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Close a lightning channel ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::close_channel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::close_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Update a lightning channel ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::update_channel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::update_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Get details about a lightning channel ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::get_channel_details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Get claimable balances from lightning channels ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::get_claimable_balances", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::get_claimable_balances", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "List open lightning channels matching a filter ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::list_open_channels_by_filter", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::list_open_channels_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "List closed lightning channels matching a filter ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::list_closed_channels_by_filter", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "lightning::channels::list_closed_channels_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-channels-methods" + }, + { + "text": "Lightning Network Payments Methods", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "Generate lightning invoices with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "Send lightning payments with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "Get details about a lightning payment with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "Get a filtered list of lightning payments with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-payments-methods" + }, + { + "text": "Lightning Network Flowchart", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Once you:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Enable lightning with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "task::enable_lightning::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "task::enable_lightning::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Connect to a lightning node with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Open a lightning channel ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::channels::open_channel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::channels::open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "You can get an invoice for a coffee from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "https://starblocks.acinq.co", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "!", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "https://starblocks.acinq.co", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Then you can:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Pay the invoice with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "View details about the payment with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "List your payments with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Follow the flowchart below to visualize the process:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-flowchart" + }, + { + "text": "Lightning Network Coins File Configuration", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "Some configurations are set per coin, and some are set per channel. The\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "counterparty_channel_config_limits", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "\nparam must be set in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": " configuration file, and aplies to all\nchannels opened by counterparty nodes. The\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "our_channels_config", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": " and\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "channel_options", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": " parameters\nare set per channel. These can be defined in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": " configuration file to\nact as the default for all opened channels, and optionally overwritten or\nupdated using the\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "open_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": " or\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "update_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "\nmethods.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "counterparty_channel_config_limits", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "our_channels_config", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "channel_options", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "open_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "update_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-network-coins-file-configuration" + }, + { + "text": "Lightning Coin Config Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | object | The ticker of the coin you will use lightning network with, suffixed with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "-lightning", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " |\n| mm2 | integer | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ". A value of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ", indicates the coin is atomic swap compatible. |\n| decimals | integer | The decimal precision of the coin you will use the lightning network with. |\n| protocol | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "CoinProtocol", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " object. |\n| accept_inbound_channels | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ". If this is set to false, we do not accept inbound requests to open a new channel. |\n| accept_forwards_to_priv_channels | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ". When set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ", any HTLCs which were to be forwarded over private channels will be rejected. This prevents us from taking on HTLC-forwarding risk when we intend to run as a node which is not online reliably (e.g. GUI wallet apps). Generally, private channels are used for non-routing purposes only. |\n| counterparty_channel_config_limits | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "CounterpartyChannelConfig", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " object. |\n| channel_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "LightningChannelOptions", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " object. |\n| our_channels_config | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "LightningChannelConfig", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "CoinProtocol", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "CounterpartyChannelConfig", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "LightningChannelOptions", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "LightningChannelConfig", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "For GUIs and wallet apps, it is recommended to set\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "accept_forwards_to_priv_channels", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": ". This prevents users from taking\non HTLC-forwarding risk when a node is expected to not be reliably online.\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "our_channels_config::announced_channel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "\nshould also be set to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": " for GUIs and wallet apps.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + }, + { + "text": "our_channels_config::announced_channel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning", + "closestElementReference": "lightning-coin-config-parameters" + } + ], + "komodo-defi-framework/api/v20-dev/lightning/nodes": [ + { + "text": "Lightning Network Nodes", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "lightning-network-nodes" + }, + { + "text": "Lightning methods are currently only available using the native Komodo DeFi Framework. WASM support should be available in late 2023.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "lightning-network-nodes" + }, + { + "text": "Connect to Node", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "connect-to-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "connect-to-node" + }, + { + "text": "lightning::nodes::connect_to_node", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "connect-to-node" + }, + { + "text": " method allows you to connect to a lightning node.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "connect-to-node" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------- | ------ | ----------------------------------------------------------------------------------- |\n| coin | string | The coin ticker you would like to connect to a node on. |\n| node_address | string | Lightning nodes addresses always have a format of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "node_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "@", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "ip_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "port", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "The node address in the above request is for the WalletOfSatoshi lightning node, which is one of the most connected lightning nodes.\nOther node addresses can be retrieved from any lightning explorer, such as:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "https://1ml.com/", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "https://1ml.com/", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "https://mempool.space/lightning/", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "https://mempool.space/lightning/", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "response-success" + }, + { + "text": "Response (already connected)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "response-already-connected" + }, + { + "text": "InvalidRequest Error (Invalid node_address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "invalid-request-error-invalid-node-address" + }, + { + "text": "ConnectionError Error (Timed out waiting to connect to node_address)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "connection-error-error-timed-out-waiting-to-connect-to-node-address" + }, + { + "text": "List Trusted Nodes", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "list-trusted-nodes" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "list-trusted-nodes" + }, + { + "text": "lightning::nodes::list_trusted_nodes", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "list-trusted-nodes" + }, + { + "text": " method allows you to list all nodes in your trusted list.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "list-trusted-nodes" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-2" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ------------------------------------------------------------- |\n| coin | string | The coin ticker you would like to view your trusted nodes to. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-2" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "response" + }, + { + "text": "Add Trusted Node", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "add-trusted-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "add-trusted-node" + }, + { + "text": "lightning::nodes::add_trusted_node", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "add-trusted-node" + }, + { + "text": " method allows you to add a node to your trusted list.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "add-trusted-node" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | --------------------------------------------------------- |\n| coin | string | The coin ticker you would like to add a trusted node for. |\n| node_id | string | ID of node you would like to add to your trusted list. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-3" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "response-2" + }, + { + "text": "Remove Trusted Node", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "remove-trusted-node" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "remove-trusted-node" + }, + { + "text": "lightning::nodes::remove_trusted_node", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "remove-trusted-node" + }, + { + "text": " method allows you to remove a node from your trusted list.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "remove-trusted-node" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-4" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ------------------------------------------------------------- |\n| coin | string | The coin ticker you would like to remove a trusted node from. |\n| node_id | string | ID of node you would like to remove from your trusted list. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "request-parameters-4" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "example-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/nodes", + "closestElementReference": "response-3" + } + ], + "komodo-defi-framework/api/v20-dev/lightning/payments": [ + { + "text": "Lightning Network Payments", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "lightning-network-payments" + }, + { + "text": "Lightning methods are currently only available using the native Komodo DeFi Framework. WASM support should be available in late 2023.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "lightning-network-payments" + }, + { + "text": "Generate invoice", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "generate-invoice" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "generate-invoice" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "generate-invoice" + }, + { + "text": " method generates an invoice to be paid by another node.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "generate-invoice" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of coin to generate invoice for. |\n| description | string | A note to indicate the purpose of the invoice. |\n| amount_in_msat | integer | Amount to be paid, in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": "millisatoshis", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": " (A thousandth of a satoshi; the same as 0.00000000001 bitcoin.) |\n| expiry | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": "3600", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": ". Seconds until the invoice expires. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": "millisatoshis", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "example" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response" + }, + { + "text": "InvalidRequest (invalid paramater value)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invalid-request-invalid-paramater-value" + }, + { + "text": "Send Payment", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "send-payment" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "send-payment" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "send-payment" + }, + { + "text": " method sends a payment to another node.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "send-payment" + }, + { + "text": "Used to pay an invoice or send a payment via pubkey/address.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "send-payment" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-2" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ---------------------------------------------------------------------------------------------------------------- |\n| type | string | Ticker of the coin to query. |\n| payment | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-2" + }, + { + "text": "LightningPayment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-2" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-2" + }, + { + "text": "LightningPayment", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-2" + }, + { + "text": "📌 Example using ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invoice" + }, + { + "text": "invoice", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invoice" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response-2" + }, + { + "text": "📌 Example using ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "keysend" + }, + { + "text": "keysend", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "keysend" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response-3" + }, + { + "text": "PaymentError (attempt to pay self)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payment-error-attempt-to-pay-self" + }, + { + "text": "PaymentError (no outbound routes)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payment-error-no-outbound-routes" + }, + { + "text": "PaymentError (keysend - no path to destination)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payment-error-keysend-no-path-to-destination" + }, + { + "text": "PaymentError (invoice - no path to destination)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payment-error-invoice-no-path-to-destination" + }, + { + "text": "InvalidRequest (request is missing a required field)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invalid-request-request-is-missing-a-required-field" + }, + { + "text": "InvalidRequest (A required field is invalid)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invalid-request-a-required-field-is-invalid" + }, + { + "text": "Get Payment Details", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": "lightning::payments::get_payment_details", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": " method returns details about a lightning payment from a given ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": "payment_hash", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "get-payment-details" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": "| Parameter | Type | Description |\n| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| coin | string | Ticker of the coin to query. |\n| payment_hash | string | The hexidecimal string which identifies a invoice. The payment_hash is returned from a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": "lightning::payments::send_payment", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": " request if the payment was sent by us, or from a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": "lightning::payments::generate_invoice", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": " request if the payment is received (or will be received) by us. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-3" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "example-2" + }, + { + "text": "NoSuchPayment (payment hash not found)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "no-such-payment-payment-hash-not-found" + }, + { + "text": "InvalidRequest (payment_hash not a hash string)", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "invalid-request-payment-hash-not-a-hash-string" + }, + { + "text": "List Payments by Filter", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "list-payments-by-filter" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "list-payments-by-filter" + }, + { + "text": "lightning::payments::list_payments_by_filter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "list-payments-by-filter" + }, + { + "text": " method returns a list of payments (sent and/or received) for a coin which match the given filter.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "list-payments-by-filter" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "| Parameter | Type | Description |\n| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of the coin to query. |\n| filter | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "LightningPaymentFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": " object. |\n| paging_options | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "Pagination", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": " object. |\n| limit | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": ". Maximum number of results to return. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "LightningPaymentFilter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "Pagination", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "request-parameters-4" + }, + { + "text": "📌 Example without filter", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "example-without-filter" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response-4" + }, + { + "text": "📌 Example for Inbound Payment ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": "payment_type", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": ", ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": "limit", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": " and ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": "pagination", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "pagination" + }, + { + "text": "📌 Example for ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payments-between-10000-and-40000-millisatoshis" + }, + { + "text": "pending", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payments-between-10000-and-40000-millisatoshis" + }, + { + "text": " payments between 10000 and 40000 millisatoshis", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "payments-between-10000-and-40000-millisatoshis" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response-5" + }, + { + "text": "📌 Example for successful payments on the 20th of April 2023", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "example-for-successful-payments-on-the-20th-of-april-2023" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/lightning/payments", + "closestElementReference": "response-6" + } + ], + "komodo-defi-framework/api/v20-dev/max_maker_vol": [ + { + "text": "max_maker_vol", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": "max_maker_vol", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": " method returns the maximum volume of a coin which can be used to create a maker order (taking into account estimated fees). If the coin is not activated, a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": "NoSuchCoin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": " error will be returned.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "max-maker-vol" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ----------------------------------------- |\n| coin | string | The ticker of the coin you want to query. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The ticker of the coin you queried. |\n| volume | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": " object representing the tradable maker volume. |\n| balance | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": " object representing the tradable taker balance. |\n| locked_by_swaps | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": " object representing the volume of a coin's balance which is locked by swaps in progress. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "NumericFormatsValue", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response-success" + }, + { + "text": "Response (error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response-error" + }, + { + "text": "Response (balance too low)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response-balance-too-low" + }, + { + "text": "Response (Transport error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/max_maker_vol", + "closestElementReference": "response-transport-error" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db": [ + { + "text": "Clear NFT Database", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "clear-nft-database" + }, + { + "text": "This method will clear the NFT database data stored in the local database for selected (or all) networks.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "clear-nft-database" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------ |\n| clear_all | boolean | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": " all NFT data for all networks will be purged. |\n| chains | array | Optional. List of networks to remove NFT data for. Options are: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "You can confirm the NFT database has been cleared by querying the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "KOMODEFI.db", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": " database file.\nFor more information, refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "Query NFT Database Tables", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": " documentation.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "Query NFT Database Tables", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example to clear Binance Smart chain and Polygon NFT data", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "example-to-clear-binance-smart-chain-and-polygon-nft-data" + }, + { + "text": "📌 Example to clear all NFT data", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "example-to-clear-all-nft-data" + }, + { + "text": "Error responses", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "error-responses" + }, + { + "text": "UnsupportedChainType", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "unsupported-chain-type" + }, + { + "text": "Returned when the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "unsupported-chain-type" + }, + { + "text": "chains", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "unsupported-chain-type" + }, + { + "text": " parameter contains an unsupported network.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/clear_nft_db", + "closestElementReference": "unsupported-chain-type" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list": [ + { + "text": "Get a list of NFTs", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "Returns a list of the NFTs owned by the user, shown in descending order of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "block_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": " value (the block height when the amount or owner changed). If the request is for NFTs on more than one chain, this means that the order may not be chronological. In the case of ERC1155 tokens, the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "block_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": " will update when additional NFTs are received or when all NFTs are withdrawn, but will generally remain the same if only some NFTs are withdrawn.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "Before using this method, you must first call the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "update_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "\nmethod to populate/refresh the local database.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "update_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "get-a-list-of-nfts" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chains | array | List of networks to scan for NFTs. Options are: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ". |\n| max | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", response will return all NFTs without pagination, and will ignore the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": " values. |\n| limit | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ". The number of NFTs displayed per page in response. |\n| page_number | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ". The page offset for items in response. |\n| protect_from_spam | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": ", any potential spam link found in collection name, token name, symbol will be replaced with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "URL redacted for user protection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| filters | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "NftFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "NftFilter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | --------------- | -------------------------------------------------------------------------------------------------- |\n| nfts | list of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "response-parameters" + }, + { + "text": "NftInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "response-parameters" + }, + { + "text": " objects. |\n| skipped | integer | The number of NFTs in your wallet excluded by the request filters. |\n| total | integer | The total number of NFTs in your wallet matching the request filters. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "response-parameters" + }, + { + "text": "NftInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Example with no optional params", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "example-with-no-optional-params" + }, + { + "text": "📌 Example with optional limit & page_number params", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "example-with-optional-limit-and-page-number-params" + }, + { + "text": "📌 Example with optional spam protection", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "example-with-optional-spam-protection" + }, + { + "text": "📌 Error responses", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "error-responses" + }, + { + "text": "Unsupported Chain Type", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "unsupported-chain-type" + }, + { + "text": "The supported chains are", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_list", + "closestElementReference": "unsupported-chain-type" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata": [ + { + "text": "Get NFT Metadata", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "get-nft-metadata" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chain | string | The token chain. |\n| token_address | string | The token address. |\n| token_id | string | Token ID. |\n| protect_from_spam | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": ", any potential spam link found in collection name, token name, symbol will be replaced with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "URL redacted for user protection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | string | The amount of this NFT the user owns (used by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "). |\n| block_number_minted | integer | The block height when the NFT was minted. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| block_number | integer | The block height when the amount or owner changed. |\n| chain | string | Chain name. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| name | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". An NFT collection name. |\n| contract_type | string | The type of NFT contract standard. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| last_token_uri_sync | string | When the token_uri was last updated. |\n| last_metadata_sync | string | When the metadata was last updated. |\n| metadata | string | The metadata of the token. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| minter_address | string | Minter address. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| owner_of | string | The wallet address of the owner of the NFT. |\n| possible_spam | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", the contract address has ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "been identified", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": " as associated with spam or suspicious activities. |\n| possible_phishing | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ", the token has been identified as associated with phishing, as at least one of domain fields is found in database with phishing domains. |\n| symbol | string | May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". The symbol of the NFT contract. |\n| token_address | string | The address of the NFT contract. |\n| token_id | string | The token ID of the NFT. |\n| token_hash | string | The token hash. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| token_uri | string | The URI to the metadata of the token. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| token_domain | string | Token domain. May be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "null", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| uri_meta | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "NftMetadata", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "been identified", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "NftMetadata", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "example" + }, + { + "text": "Error responses", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_metadata", + "closestElementReference": "error-responses" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers": [ + { + "text": "Get a list of NFT transfers", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "Returns a list of the NFT transfers involving the user, shown in descending order of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "block_timestamp", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": " value of the NFT's last transfer.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "To view NFT transactions, you must ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "activate the coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": " which holds the NFTs first.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "activate the coin", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "get-a-list-of-nft-transfers" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chains | array | List of chains to scan for NFTs. |\n| max | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ", response will return all NFT transfers without pagination, and will ignore the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "page_number", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": " values. |\n| limit | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ". The number of NFT transfers displayed per page in response. |\n| page_number | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ". The page offset for items in response. |\n| protect_from_spam | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": ", any potential spam link found in collection name, token name, symbol will be replaced with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "URL redacted for user protection", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| filters | object | Optional. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "NftTransferFilter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "NftTransferFilter", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | --------------- | ---------------------------------------------------------------------------------------------------------- |\n| transfer_history | list of objects | A list of standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "response-parameters" + }, + { + "text": "NftTransfer", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "response-parameters" + }, + { + "text": " objects. |\n| total | integer | The total number of NFT transfers in your wallet matching the request filters. |\n| skipped | integer | The number of NFT transfers in your wallet excluded by the request filters. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "response-parameters" + }, + { + "text": "NftTransfer", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 Example with date and ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "filters" + }, + { + "text": "send", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "filters" + }, + { + "text": " filters", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/get_nft_transfers", + "closestElementReference": "filters" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens": [ + { + "text": "Non Fungible Tokens (NFTs)", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "The Komodo DeFi Framework API supports ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": " NFTs via the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "Moralis API", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": " on the Avalanche (AVAX), BNB Smart Chain (BNB), Ethereum (ETH), Fantom (FTM), Polygon (MATIC) networks.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "ERC1155", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "ERC721", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "Moralis API", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "Before using other NFT methods, you should first call the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "update_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "\nmethod to populate/refresh the local database.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "update_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "non-fungible-tokens-nfts" + }, + { + "text": "NFT Information Methods", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "Get a list of your tokens with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_list", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "Get a list of token transfers with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_transfers", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_transfers", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "Get token metadata with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_metadata", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "get_nft_metadata", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "Update NFT ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "update_nft", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "update_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "Refresh NFT metadata with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "refresh_nft_metadata", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "refresh_nft_metadata", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-information-methods" + }, + { + "text": "NFT Transaction Methods", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "Withdraw ERC721 tokens with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "withdraw_nft", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "withdraw_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "Withdraw ERC1155 tokens with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "withdraw_nft", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "withdraw_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "View the source code at: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/mm2src/coins/nft.rs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/mm2src/coins/nft.rs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens", + "closestElementReference": "nft-transaction-methods" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables": [ + { + "text": "Query NFT database tables", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "After using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "update_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": " method to initialise your local NFT database,\nthe following tables are available in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "DB/KOMODEFI.db", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "update_nft", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "AVAX_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "AVAX_nft_transfer_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "BNB_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "BNB_nft_transfer_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "ETH_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "ETH_nft_transfer_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "FTM_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "FTM_nft_transfer_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "MATIC_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "MATIC_nft_transfer_history", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "scanned_nft_blocks", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "query-nft-database-tables" + }, + { + "text": "NFT List tables", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "The COIN_nft_list tables contain the NFTs that you own\nIt has the following columns, though not all columns are populated for all NFTs:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | ---------------------- | ------------ | ------------------------------------------------------------------------------ |\n| 0 | token_address | VARCHAR(256) | The address of the token contract. |\n| 1 | token_id | VARCHAR(256) | The id of the token. |\n| 2 | chain | TEXT | The coin network which the NFT is on. |\n| 3 | amount | VARCHAR(256) | The amount of NFTs transfered in this transaction. |\n| 4 | block_number | INTEGER | The block height of this transaction. |\n| 5 | contract_type | TEXT | The contract type. Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": ". |\n| 6 | possible_spam | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": " indicates the NFT has been identified as spam. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": " indicates it has not. |\n| 7 | possible_phishing | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": " indicates the NFT has been identified as a scam. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": " indicates it has not. |\n| 8 | collection_name | TEXT | The collection name which includes the token. |\n| 9 | symbol | TEXT | An arbitrary symbol for the NFT |\n| 10 | token_uri | TEXT | A link to the token's metadata. |\n| 11 | token_domain | TEXT | The domain the token metadata is hosted on. |\n| 12 | metadata | TEXT | The token's metadata in JSON format. |\n| 13 | last_token_uri_sync | TEXT | Date and time when the token uri was last syncronised. |\n| 14 | last_metadata_sync | TEXT | Date and time when the token metadata was last syncronised. |\n| 15 | raw_image_url | TEXT | The raw URL for the token image. |\n| 16 | image_url | TEXT | A link for the token's image (or other media). |\n| 17 | image_domain | TEXT | The domain the token image (or other media) is hosted on. |\n| 18 | token_name | TEXT | The name of the token. |\n| 19 | description | TEXT | An arbitrary description of the NFT. |\n| 20 | attributes | TEXT | Additional attribute data for the NFT in JSON format. |\n| 21 | animation_url | TEXT | If NFT is animated, the URL of the animation. |\n| 22 | animation_domain | TEXT | If NFT is animated, the domain of the animation. |\n| 23 | external_url | TEXT | Additional URL related to the NFT |\n| 24 | external_domain | TEXT | Domain of the additional URL related to the NFT |\n| 25 | image_details | TEXT | Additional details about the NFT's image. |\n| 26 | details_json | TEXT | Additional information about the transaction in JSON format. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-list-tables" + }, + { + "text": "Example COIN_nft_list table query", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "SELECT chain, token_name, token_address, token_id, possible_spam, possible_phishing FROM MATIC_nft_list LIMIT 5;", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "| chain | token_name | token_address | token_id | possible_spam | possible_phishing |\n| ------- | ---------------------- | ------------------------------------------ | --------- | -------------- | ------------------ |\n| POLYGON | $2000 USDT Airdrop🎁 | 0xe7ee9dcf5f4b7f9254b348ba596c9fb9121f77e7 | 1 | 1 | 0 |\n| POLYGON | $1000 USDC Voucher🎁 | 0xb092b5eb5c653e915880dfc1f606be2ffe6fae8c | 1 | 1 | 0 |\n| POLYGON | 1000 BLUR Reward | 0xeaa3c52052b809c8d8072187efc134def2dd5b13 | 0 | 1 | 0 |\n| POLYGON | SHIB Voucher 66 of 100 | 0xc46e36339ebd8bed48b1bdb6bd815e4b72103949 | 0 | 1 | 0 |\n| POLYGON | $1000 Rewards | 0x6e0b84421388ad635f2a1167e39aff2dc742da2a | 0 | 1 | 0 |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "The NFTs listed above are all spam, and will be ignored by the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "get_nft_list", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "get_nft_list", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-list-table-query" + }, + { + "text": "NFT Transfer table", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "The COIN_nft_transfer_history tables contain the history of transfers of your NFTs, and have the following columns:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | ------------------ | ------------ | ------------------------------------------------------------------------------ |\n| 0 | transaction_hash | VARCHAR(256) | Hex string, representing the transaction. |\n| 1 | log_index | INTEGER | Simply a table index. |\n| 2 | chain | TEXT | The coin network which the NFT is on. |\n| 3 | block_number | INTEGER | The block height of this transaction. |\n| 4 | block_timestamp | INTEGER | The block time of this transaction. |\n| 5 | contract_type | TEXT | The contract type. Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": ". |\n| 6 | token_address | VARCHAR(256) | The address of the token contract. |\n| 7 | token_id | VARCHAR(256) | The id of the token. |\n| 8 | status | TEXT | The transaction type: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "Recieve", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "Send", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " |\n| 9 | amount | VARCHAR(256) | The amount of NFTs transfered in this transaction. |\n| 10 | possible_spam | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " indicates the NFT has been identified as spam. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " indicates it has not. |\n| 11 | possible_phishing | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " indicates the NFT has been identified as a scam. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": " indicates it has not. |\n| 12 | token_uri | TEXT | A link to the token's metadata. |\n| 13 | token_domain | TEXT | The domain the token metadata is hosted on. |\n| 14 | collection_name | TEXT | The collection name which includes the token. |\n| 15 | image_url | TEXT | A link for the token's image (or other media). |\n| 16 | image_domain | TEXT | The domain the token image (or other media) is hosted on. |\n| 17 | token_name | TEXT | The name of the token. |\n| 18 | details_json | TEXT | Additional information about the transaction in JSON format. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-transfer-table" + }, + { + "text": "Example COIN_nft_transfer_history table query", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-transfer-history-table-query" + }, + { + "text": "SELECT transaction_hash, token_name, token_address, token_id, FROM MATIC_nft_transfer_history WHERE block_timestamp > 1701519320;", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-transfer-history-table-query" + }, + { + "text": "| transaction_hash | token_name | token_address | token_id |\n| ------------------------------------------------------------------ | -------------------- | ------------------------------------------ | --------- |\n| 0x7b57303bcc2c68808b460490e984adcd18567a80660a18b7a151b62015247cda | $2000 USDT Airdrop🎁 | 0xe7ee9dcf5f4b7f9254b348ba596c9fb9121f77e7 | 1 |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-coin-nft-transfer-history-table-query" + }, + { + "text": "NFT Last Scanned Block table", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-last-scanned-block-table" + }, + { + "text": "The scanned_nft_blocks table contains the last block that was scanned for each chain.\nIt has the following columns:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-last-scanned-block-table" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | -------------------- | ------- | ---------------------------------------------------------------------- |\n| 2 | chain | TEXT | The coin network which the NFT is on. |\n| 1 | last_scanned_block | INTEGER | The block height when the last scan for NFTs was performed on a chain. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "nft-last-scanned-block-table" + }, + { + "text": "Example scanned_nft_blocks table query", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-scanned-nft-blocks-table-query" + }, + { + "text": "SELECT * FROM scanned_nft_blocks;", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-scanned-nft-blocks-table-query" + }, + { + "text": "| chain | last_scanned_block |\n| ----- | -------------------- |\n| MATIC | 50651981 |\n| FTM | 66512090 |\n| ETH | 0 |\n| BNB | 0 |\n| AVAX | 0 |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/query_nft_database_tables", + "closestElementReference": "example-scanned-nft-blocks-table-query" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata": [ + { + "text": "Refresh NFT Metadata", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "refresh-nft-metadata" + }, + { + "text": "This method refreshes metadata of one NFT and metadata of related transactions with the same token_address and token_id.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "refresh-nft-metadata" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chain | string | Chains which holds the NFT you would like to updated metadata for. |\n| token_address | string | Token address. |\n| token_id | string | Token ID. |\n| proxy_auth | boolean | Indicates whether authentication is required for accessing the proxy URLs (true if authentication is necessary, otherwise false). |\n| url | string | URL link to the Moralis API proxy base url (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "https://moralis-proxy.komodo.earth", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": ") or equivalent (if proxy_auth is set to true, will need to provide a new Komodo Proxy URL). |\n| url_antispam | string | URL link to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "Antispam API proxy base url", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": " or equivalent. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "docs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "https://moralis-proxy.komodo.earth", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "Antispam API proxy base url", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "docs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "If there are no errors, this request will return an empty response.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "example" + }, + { + "text": "If there are no errors, this request will return an empty response.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "example" + }, + { + "text": "Need to add some error responses here.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/refresh_nft_metadata", + "closestElementReference": "example" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft": [ + { + "text": "Update NFT", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "This method will scan selected networks to update NFT information stored in the local database.\nTo interact with your NFTs, you will first need to activate the coin for the network the NFT is on.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "See below for which coin to activate for each network:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "| Network | Coin |\n| --------- | ----- |\n| AVALANCHE | AVAX |\n| BSC | BNB |\n| ETH | ETH |\n| FANTOM | FTM |\n| POLYGON | MATIC |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "These coins can be activated using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": " or method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "update-nft" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chains | array | List of networks to scan for NFTs. Options are: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": ". |\n| proxy_auth | boolean | Indicates whether authentication is required for accessing the proxy URLs (true if necessary, false otherwise). |\n| url | string | URL link to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "Moralis API proxy base url", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": " or equivalent (if proxy_auth is set to true, will need to provide a new Komodo Proxy URL). |\n| url_antispam | string | URL link to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "Antispam API proxy base url", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": " or equivalent. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "Moralis API proxy base url", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "Antispam API proxy base url", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "If there are no errors, this request will return an empty response.\nWhen updating multiple networks, or wallets with numerous NFTs, this request may take a while to complete.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "📌 Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "example" + }, + { + "text": "Need to add some error responses here.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/update_nft", + "closestElementReference": "example" + } + ], + "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft": [ + { + "text": "Withdraw NFTs", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "To withdraw NFTs, you must ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "activate the coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": " which holds the NFTs first.\nThe ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "withdraw_nft", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": " method will return signed raw transaction hex which must be broadcast using the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": " method to complete the withdrawal.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "activate the coin", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts" + }, + { + "text": "Request Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------ | ---------------------------------------------------------------------------------------------------------- |\n| type | string | The contract type of the NFT to withdraw. Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "withdraw_erc721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "withdraw_erc1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": " |\n| withdraw_data | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "WithdrawNftData", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "WithdrawNftData", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "request-parameters" + }, + { + "text": "Response Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| amount | string | Amount of tokens to withdraw. |\n| tx_hex | string | Raw hex of signed transaction. Use this with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": " RPC to broadcast the transaction. |\n| tx_hash | string | Transaction ID of the withdrawl. |\n| from | array | List of source addresses. |\n| to | array | List of destination addresses. |\n| contract_type | string | Contract type. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "ERC721", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "ERC1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| token_address | string | Token address. |\n| token_id | string | Token ID. |\n| fee_details | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "WithdrawFee", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": " object. |\n| coin | string | Coin name. One of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "AVALANCHE", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "BSC", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "FANTOM", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "POLYGON", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| block_height | integer | Block height of the transaction. If the value is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ", the transaction is unconfirmed. |\n| timestamp | integer | Timestamp of the block containing the withdrawl transaction in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "unix epoch format", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ". |\n| internal_id | integer | Used for internal transaction identification, for some coins it may be equal to transaction hash. |\n| transaction_type | string | This will always be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "NftTransfer", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "WithdrawFee", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "unix epoch format", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "response-parameters" + }, + { + "text": "📌 ERC721 Withdraw Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-721-withdraw-example" + }, + { + "text": "📌 ERC1155 Withdraw Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-example" + }, + { + "text": "If you are sending 2 or more NFTs, you must use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-example" + }, + { + "text": "withdraw_erc1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-example" + }, + { + "text": " withdraw type.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-example" + }, + { + "text": "📌 ERC1155 Withdraw Max Example", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": "If you would like to withdraw all NFTs from a token_address, you must use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": "withdraw_erc1155", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": " withdraw type and set ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": "max", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "erc-1155-withdraw-max-example" + }, + { + "text": "📌 Withdraw NFTs Error Responses", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "withdraw-nfts-error-responses" + }, + { + "text": "InvalidRequest (missing field)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "invalid-request-missing-field" + }, + { + "text": "InvalidRequest (wrong withdraw type)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "invalid-request-wrong-withdraw-type" + }, + { + "text": "TokenNotFoundInWallet (trying to send NFT you dont own)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "token-not-found-in-wallet-trying-to-send-nft-you-dont-own" + }, + { + "text": "TransportError (unable to estimate gas)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "transport-error-unable-to-estimate-gas" + }, + { + "text": "NotEnoughNftsAmount (trying to send more NFTs than you have)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "not-enough-nfts-amount-trying-to-send-more-nfts-than-you-have" + }, + { + "text": "View the source code at: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "not-enough-nfts-amount-trying-to-send-more-nfts-than-you-have" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/mm2src/coins/nft.rs", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "not-enough-nfts-amount-trying-to-send-more-nfts-than-you-have" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/blob/main/mm2src/coins/nft.rs", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/non_fungible_tokens/withdraw_nft", + "closestElementReference": "not-enough-nfts-amount-trying-to-send-more-nfts-than-you-have" + } + ], + "komodo-defi-framework/api/v20-dev/task_account_balance": [ + { + "text": "Account Balance Tasks", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "If you have activated a coin with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": " and used the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "\"priv_key_policy\": \"Trezor\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": " parameter, your funds may be spread across a range of addresses under a specified account index. The methods below will return the combined balance of your account, detailing the balance for each active account address.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "account-balance-tasks" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "init" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "init" + }, + { + "text": "task::account_balance::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "init" + }, + { + "text": " method to initialise an account balance request.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of activated coin you want to see addresses and balance for |\n| account_index | string | For GUIs, this will be zero. In CLI you can use other values if you ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments" + }, + { + "text": "know what you are doing", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments" + }, + { + "text": "know what you are doing", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "command" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-ready-successful" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "status" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "status" + }, + { + "text": "task::account_balance::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "status" + }, + { + "text": " method to view the status / response of an account balance request.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the withdrawal process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | object | Object containing status and details of the task |\n| .status | string | Status of the task (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "Ok", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": ") |\n| ..account_index | integer | For GUIs, this will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": ". In CLI it will return the same as the user request input |\n| ..derivation_path | string | The The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": " of the wallet. |\n| ..total_balance | object | Contains the spendable and unspendable balance for the wallet |\n| ...spendable | string(numeric) | Spendable balance for this wallet |\n| ...unspendable | string(numeric) | Unspendable balance for this wallet (e.g. from unconfirmed incoming transactions) |\n| ..addresses | list | Contains information about current active addresses in the wallet |\n| ...address | string | Spendable balance for this address |\n| ...derivation_path | string | The The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": " of an address. |\n| ...chain | string(numeric) | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": ". External is used for addresses that are meant to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used for return transaction change. |\n| ...balance | object | Contains the spendable and unspendable balance for this address |\n| ....spendable | string(numeric) | Spendable balance for this address |\n| ....unspendable | string(numeric) | Unspendable balance for this address (e.g. from unconfirmed incoming transactions) |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "command-2" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-ready-successful-2" + }, + { + "text": "cancel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "cancel" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "cancel" + }, + { + "text": "task::account_balance::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "cancel" + }, + { + "text": " method to cancel an account balance request.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "cancel" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | ----------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the withdrawal process. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-3" + }, + { + "text": "| Parameter | Type | Description |\n| ------------ | ------ | -------------------------------------------------------------------------------------- |\n| result | string | Returns with value ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-3" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-3" + }, + { + "text": " when successful, otherwise returns the error values below |\n| error | string | Description of the error |\n| error_path | string | Used for debugging. A reference to the function in code base which returned the error |\n| error_trace | string | Used for debugging. A trace of lines of code which led to the returned error |\n| error_type | string | An enumerated error identifier to indicate the category of error |\n| error_data | string | Additonal context for the error type |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "command-3" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-ready-successful-3" + }, + { + "text": "Response (error, task already finished)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_account_balance", + "closestElementReference": "response-error-task-already-finished" + } + ], + "komodo-defi-framework/api/v20-dev/task_create_new_account": [ + { + "text": "task_create_new_account", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "If you have activated a coin with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": " and are using ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "HD Mode", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": ", your funds may be spread across a range of addresses under a specified account index. The methods below will return the combined balance of your account, detailing the balance for each active account address.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "task-create-new-account" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "init" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "init" + }, + { + "text": "task::create_new_account::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "init" + }, + { + "text": " method to initialise a HD account.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of coin you would like to initialise a HD account for. |\n| account_id | string | Optional. If not defined, will increment to the next unused account id in the wallet. |\n| scan | string | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": ", will scan the account for funded addresses. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": ". |\n| 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. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "command" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-ready-successful" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "status" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "status" + }, + { + "text": "task::create_new_account::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "status" + }, + { + "text": " method to query the status of a HD account creation task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the withdrawal process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| status | string | Status of the task. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "Ok", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "Error", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": ". |\n| details | string or object | If in progress, either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "Preparing", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "RequestingAccountBalance", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": ". Once complete, a standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "WalletAccountInfo", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "WalletAccountInfo", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "command-2" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-ready-successful-2" + }, + { + "text": "Response (in progress)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_create_new_account", + "closestElementReference": "response-in-progress" + } + ], + "komodo-defi-framework/api/v20-dev/task_enable_qtum": [ + { + "text": "task::enable_qtum", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "task-enable-qtum" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "init" + }, + { + "text": "QTUM coins are activated using this method. For UTXO coins, refer to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "init" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "init" + }, + { + "text": "task::enable_utxo::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | The ticker of the coin you want to enable. |\n| activation_params | object | An object containing the actvation parameters below. |\n| .priv_key_policy | string | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ". Set as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " to activate in Trezor mode. |\n| .min_addresses_number | integer | How many additional addreesses to generate at a minimum. |\n| .scan_policy | string | Whether or not to scan for new addresses. Select from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "do_not_scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "scan_if_new_wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ". Note that ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " will result in multple requests to the Komodo DeFi Framework. |\n| .gap_limit | integer | The max number of empty addresses in a row. If transactions were sent to an address outside the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "gap_limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ", they will not be identified when scanning. |\n| .mode | object | An object containing RPC type and data parameters as below. |\n| ..rpc | string | UTXO RPC mode. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "{ \"rpc\":\"Native\" }", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " if running a native blockchain node, or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "\"rpc\":\"Electrum\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " to use electrum RPCs. If using electrum, a list of electrum servers is required under ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "rpc_data.servers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " |\n| ..rpc_data | object | An object containing electrum server information. |\n| ...servers | list | A list of electrum server URLs (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| ....url | object | The url and port of a coins electrum server |\n| ....ws_url | object | Optional. Used to define electrum server url/port for websocket connections. |\n| ....protocol | object | Defines electrum server protocol as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": ". Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " |\n| ....disable_cert_verification | boolean | Optional. For ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": " electrum connections, this will allow expired certificates. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response-2" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "After running the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": " method, we can query the status of activation to check its progress.\nThe response will return the following:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "Result of the task (success or error)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "Progress status (what state the task is in)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "Required user action (what user should do before the task can continue)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-2" + }, + { + "text": "Request", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "request" + }, + { + "text": "The response formats for this method are the same as the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "request" + }, + { + "text": "task::enable_utxo::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "request" + }, + { + "text": " responses.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "request" + }, + { + "text": "task::enable_utxo::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "request" + }, + { + "text": "user_action", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": "If the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": "task::enable_qtum::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": " returns ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": "UserActionRequired", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": ", we need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": "task::enable_qtum::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": " method to enter our PIN", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "user-action" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-3" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| user_action | object | Object containing the params below |\n| user_action.action_type | string | Will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-3" + }, + { + "text": "TrezorPin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-3" + }, + { + "text": " for this method |\n| user_action.pin | string (number) | When the Trezor device is displaying a grid of numbers for PIN entry, this param will contain your Trezor pin, as mapped through your keyboard numpad. See the image below for more information. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | --------------------------- |\n| result | string | The outcome of the request. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "command-2" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "response-success" + }, + { + "text": "Error Cases", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "error-cases" + }, + { + "text": "CoinCreationError", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "error-cases" + }, + { + "text": ": Returned when a coin is not supported.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_qtum", + "closestElementReference": "error-cases" + } + ], + "komodo-defi-framework/api/v20-dev/task_enable_utxo": [ + { + "text": "task::enable_utxo", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "task-enable-utxo" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "init" + }, + { + "text": "UTXO coins are activated using this method. For QTUM coins, refer to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "init" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "init" + }, + { + "text": "task::enable_qtum::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | The ticker of the coin you want to enable. |\n| activation_params | object | An object containing the actvation parameters below. |\n| .priv_key_policy | string | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "ContextPrivKey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ". Set as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " to activate in Trezor mode. |\n| .min_addresses_number | integer | How many additional addreesses to generate at a minimum. |\n| .scan_policy | string | Whether or not to scan for new addresses. Select from ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "do_not_scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "scan_if_new_wallet", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ". Note that ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "scan", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " will result in multple requests to the Komodo DeFi Framework. |\n| .gap_limit | integer | The max number of empty addresses in a row. If transactions were sent to an address outside the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "gap_limit", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ", they will not be identified when scanning. |\n| .mode | object | An object containing RPC type and data parameters as below. |\n| ..rpc | string | UTXO RPC mode. Options: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "{ \"rpc\":\"Native\" }", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " if running a native blockchain node, or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "\"rpc\":\"Electrum\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " to use electrum RPCs. If using electrum, a list of electrum servers is required under ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "rpc_data.servers", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " |\n| ..rpc_data | object | An object containing electrum server information. |\n| ...servers | list | A list of electrum server URLs (", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ") |\n| ....url | object | The url and port of a coins electrum server |\n| ....ws_url | object | Optional. Used to define electrum server url/port for websocket connections. |\n| ....protocol | object | Defines electrum server protocol as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": ". Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "TCP", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " |\n| ....disable_cert_verification | boolean | Optional. For ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "SSL", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": " electrum connections, this will allow expired certificates. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "https://github.com/KomodoPlatform/coins/tree/master/electrums", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "examples" + }, + { + "text": "Activation in Trezor mode", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "activation-in-trezor-mode" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-2" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "After running the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": " method, we can query the status of activation to check its progress.\nThe response will return the following:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "Result of the task (success or error)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "Progress status (what state the task is in)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "Required user action (what user should do before the task can continue)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "command" + }, + { + "text": "Response (ready, successful, Trezor mode)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| status | string | A short indication of how the requested process is progressing. |\n| details.result | object | Depending on the state of process progress, this will contain different information as detailed in the items below. |\n| .ticker | string | The ticker of the coin being activated |\n| .current_block | integer | The block height of the coin being activated |\n| .wallet_balance | object | Information about the addresses of the coin being activated |\n| ..wallet_type | string | In Trezor mode, this will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "HD", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " |\n| ..accounts | list | A list of addresses and related information for the coin being activated |\n| ...account_index | integer | ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "ACCOUNT_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " child in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " BIP44 derivation path. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "Please don't confuse with mm2 global Iguana/HD/HW account.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " |\n| ...derivation_path | string | Derivation path up to the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "COIN", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " child. E.g. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "\"m/44'/141'/0'\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " |\n| ...total_balance | object | Combined total spendable and unconfirmed balances of all account addresses |\n| ....spendable | string(numeric) | Combined total spendable balance of all account addreesses |\n| ....unspendable | string(numeric) | Combined total unspendable balance of all account addreesses |\n| ...addresses | list | A list of addresses in the account for the coin being activated |\n| ....address | string | One of the addresses in the account for the coin being activated |\n| ....derivation_path | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " of the address. |\n| ....chain | string | Returns ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "CHAIN=0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " derivation path. Returns ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "CHAIN=1", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "m/44'/COIN'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": " derivation path. External is used for addresses that are meant to be visible outside of the wallet (e.g. for receiving payments). Internal is used for addresses which are not meant to be visible outside of the wallet and is used for return transaction change. |\n| ....balance | object | Contains the spendable and unspendable balance for this address |\n| .....spendable | string(numeric) | Spendable balance for this address |\n| .....unspendable | string(numeric) | Unspendable balance for this address (e.g. from unconfirmed incoming transactions) |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-trezor-mode" + }, + { + "text": "Response (ready, successful, Iguana mode)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-iguana-mode" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------- | --------------- | ------------------------------------------------------------------------------------------------------------------- |\n| status | string | A short indication of how the requested process is progressing. |\n| details.result | object | Depending on the state of process progress, this will contain different information as detailed in the items below. |\n| .ticker | string | The ticker of the coin being activated |\n| .current_block | integer | The block height of the coin being activated |\n| .wallet_balance | object | Information about the addresses of the coin being activated |\n| ..wallet_type | string | In Trezor mode, this will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-iguana-mode" + }, + { + "text": "HD", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-iguana-mode" + }, + { + "text": " |\n| ..address | string | One of the addresses in the account for the coin being activated |\n| ..balance | object | Contains the spendable and unspendable balance for this address |\n| ...spendable | string(numeric) | Spendable balance for this address |\n| ...unspendable | string(numeric) | Unspendable balance for this address (e.g. from unconfirmed incoming transactions) |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-successful-iguana-mode" + }, + { + "text": "Response (in progress)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | ----------------------------------------------------------- |\n| status | string | Will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "InProgress", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": " if task is not yet comepleted |\n| details | string | An indication of the current step of the activation process |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "Possible In Progress Cases:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "ActivatingCoin", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": ": The first step of activation. It does not require any action from the user.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "RequestingWalletBalance", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": ": The first step of activation, while initial balances info is being requested. It does not require any action from the user.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "Finishing", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": ": Activation process completed", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "WaitingForTrezorToConnect", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": ": Waiting for the user to plugin a Trezor device", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "FollowHwDeviceInstructions", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": ": Waiting for the user to follow the instructions on the device", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-in-progress" + }, + { + "text": "Response (ready, error)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------- |\n| status | string | A short indication of how the requested process is progressing. |\n| details.result | object | Depending on the state of process progress, this will contain different information as detailed in the items below. |\n| .error | string | The ticker of the coin being activated |\n| .error_path | string | Used for debugging. A reference to the function in code base which returned the error |\n| .error_trace | string | Used for debugging. A trace of lines of code which led to the returned error |\n| .error_type | string | An enumerated error identifier to indicate the category of error |\n| .error_data | string | Additonal context for the error type |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "Possible Error Cases:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "TaskTimedOut", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " - Timed out waiting for coin activation, connecting to the device trezor or for user to confirm pubkey)", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "CoinCreationError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " - Error during activation. E.g. incorrect or inactive electrum servers.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "HwError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " - ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "This is the most important error type.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " Unlike other error types, ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "HwError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " requires the GUI / User to check the details in ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "error_data", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " field to know which action is required. View the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "HwError error type details", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": " for more info.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "HwError error type details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-ready-error" + }, + { + "text": "user_action", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": "If the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": "task::enable_utxo::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": " returns ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": "UserActionRequired", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": ", we need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": "task::enable_utxo::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": " method to enter our PIN", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "user-action" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-3" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| user_action | object | Object containing the params below |\n| user_action.action_type | string | Will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-3" + }, + { + "text": "TrezorPin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-3" + }, + { + "text": " for this method |\n| user_action.pin | string (number) | When the Trezor device is displaying a grid of numbers for PIN entry, this param will contain your Trezor pin, as mapped through your keyboard numpad. See the image below for more information. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | --------------------------- |\n| result | string | The outcome of the request. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "command-2" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_enable_utxo", + "closestElementReference": "response-success" + } + ], + "komodo-defi-framework/api/v20-dev/task_init_trezor": [ + { + "text": "Trezor Initialisation", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "The methods below prepare your Trezor device for use within the Komodo DeFi Framework API. Once completed, you can authenticate using your PIN or phrase with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "Methods with a ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "task::", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": " prefix will be linked to a numeric\n", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": " value which can be used to query the status or outcome of a task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "trezor-initialisation" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "init" + }, + { + "text": "Before using this method, launch the Komodo DeFi Framework API, and plug in your Trezor.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments" + }, + { + "text": "| Parameter | Type | Description |\n| -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| device_pubkey | string | Optional. If known, you can specify the device pubkey. If not known, this will be part of the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments" + }, + { + "text": "task::init_trezor::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments" + }, + { + "text": " response which you can save for future use |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "examples" + }, + { + "text": "Command (without device_pubkey)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command-without-device-pubkey" + }, + { + "text": "Command (with device_pubkey)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command-with-device-pubkey" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-success" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "status" + }, + { + "text": "After running the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "status" + }, + { + "text": "task::init_trezor::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "status" + }, + { + "text": " method, we can query the status of device initialisation to check its progress.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ----------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": ". |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| status | string | A short indication of how the requested process is progressing. |\n| details | object | Depending on the state of process progress, this will contain different information as detailed in the items below. |\n| details.type | string | Type of hardware wallet device (e.g. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "Trezor", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": ") |\n| details.model | string | The model of the hardware wallet device (e.g. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "One", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "T", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": ") |\n| details.device_name | string | The name of the device as defned by user in Trezor Suite or another wallet application. |\n| details.device_id | string (hex) | An unique identifier of the device, set during manufacturing. |\n| details.device_pubkey | string (hex) | The hardware wallet device's pubkey. If included in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "task::init_trezor::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": " request, it wll be the same as input. If not, it should be stored for future use. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command" + }, + { + "text": "Response (in progress)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "Possible \"In progress\" Cases:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "Initializing", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - This is the normal task state. It does not require any action from the user.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "Initializing", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - This is the normal task state. It does not require any action from the user.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "WaitingForTrezorToConnect", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - The Komodo DeFi Framework API is waiting for the user to plugin a Trezor device.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "WaitingForTrezorToConnect", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - The Komodo DeFi Framework API is waiting for the user to plugin a Trezor device.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "FollowHwDeviceInstructions", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - The Komodo DeFi Framework API is waiting for the user to follow instructions displayed on the device (e.g. clicking a button to confirm).", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "UserActionRequired", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " - This will either be ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "EnterTrezorPin", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "EnterTrezorPassphrase", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": ". Refer to the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": " section for more information.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "task::init_trezor::user_action", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-in-progress" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-ready-successful" + }, + { + "text": "Error Responses (by ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "error_type", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "HwContextInitializingAlready", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " - Returned if user calls ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "task::init_trezor::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " before the previous ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "task::init_trezor::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " task has been completed.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "Timeout", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " - Task timed out while trying to connect to a device.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "NoSuchTask", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " - Something went wrong or ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "task::init_trezor::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " was not called. Refer to the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "task::init_trezor::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " section for more information.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "task::init_trezor::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "HwError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " - ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "This is the most important error type.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " Unlike other error types, ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "HwError", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " requires the GUI / User to check the details in ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "error_data", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " field to know which action is required. View the ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "HwError error type details", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": " for more info.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "HwError error type details", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "" + }, + { + "text": "cancel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "cancel" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "cancel" + }, + { + "text": "task::init_trezor::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "cancel" + }, + { + "text": " method to cancel the initialisation task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "cancel" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-3" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------- | --------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-3" + }, + { + "text": "| Parameter | Type | Description |\n| ------------ | ------ | -------------------------------------------------------------------------------------- |\n| result | string | Returns with value ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-3" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-3" + }, + { + "text": " when successful, otherwise returns the error values below |\n| error | string | Description of the error |\n| error_path | string | Used for debugging. A reference to the function in code base which returned the error |\n| error_trace | string | Used for debugging. A trace of lines of code which led to the returned error |\n| error_type | string | An enumerated error identifier to indicate the category of error |\n| error_data | string | Additonal context for the error type |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command-2" + }, + { + "text": "Response (ready, successful)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-ready-successful-2" + }, + { + "text": "Response (error, task already finished)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-error-task-already-finished" + }, + { + "text": "user_action", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "user-action" + }, + { + "text": "When you see the pin grid on your device, or it asks for a passphrase word, use this method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "user-action" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "| Parameter | Type | Description |\n| ------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| user_action | object | Object containing the params below |\n| user_action.action_type | string | Either ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "TrezorPin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "TrezorPassphrase", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": ", depending on which is requested by responses from related methods returning ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "\"status\": \"UserActionRequired\"", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": " |\n| user_action.pin | string (number) | When the Trezor device is displaying a grid of numbers for PIN entry, this param will contain your Trezor pin, as mapped through your keyboard numpad. See the image below for more information. |\n| user_action.passphrase | string | The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "passphrase", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": " functions like an extra word added to your recovery seed, and it used to access hidden wallets. To access the default wallet, input an empty string here. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "passphrase", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-4" + }, + { + "text": "| Parameter | Type | Description |\n| --------- | ------ | --------------------------- |\n| result | string | The outcome of the request. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-4" + }, + { + "text": "Even an incorrect PIN will return ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-4" + }, + { + "text": "success", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-4" + }, + { + "text": ". This doesn't mean the PIN was accepted, just that it was communicated without errors. If the PIN was incorrect, you will see an error like below in the next response for a method that requires authentication.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "examples-4" + }, + { + "text": "Command (for TrezorPin)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command-for-trezor-pin" + }, + { + "text": "Command (for TrezorPassphrase)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "command-for-trezor-passphrase" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "response-success-2" + }, + { + "text": "Details for ", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "HwError", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": " error type", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "When requesting the status of a task, if an ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "error_type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "HwError", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": " is returned, the GUI / User should check the details in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "error_data", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": " field to know which action is required (as detailed below).", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "error-type-2" + }, + { + "text": "FoundUnexpectedDevice", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-unexpected-device" + }, + { + "text": "The connected Trezor device has a different pubkey value than what was specified in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-unexpected-device" + }, + { + "text": "device_pubkey", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-unexpected-device" + }, + { + "text": " parameter", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-unexpected-device" + }, + { + "text": "FoundMultipleDevices", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-multiple-devices" + }, + { + "text": "Multiple Trezor devices are plugged in. Remove the additional devices, and keep the one you want to use plugged in.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "found-multiple-devices" + }, + { + "text": "NoTrezorDeviceAvailable", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "no-trezor-device-available" + }, + { + "text": "No Trezor device detected by the Komodo DeFi Framework API. Make sure it is plugged in, or try a different USB cable / port.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_init_trezor", + "closestElementReference": "no-trezor-device-available" + } + ], + "komodo-defi-framework/api/v20-dev/task_withdraw": [ + { + "text": "Withdraw Tasks", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "withdraw-tasks" + }, + { + "text": "init", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "task::withdraw::init", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " method generates, signs, and returns a transaction that transfers the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "amount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " to the address indicated in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "to", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " argument. The status of this method can be queried via the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "withdraw_status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "withdraw_status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "It will return the transaction hex (via ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "task::withdraw::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "), which then needs to be broadcast with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " to complete the withdrawal. This method is uses the same input fields as the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "standard v2 withdraw method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": ", with additional optional fields to specify the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "from", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " address when using a hardware or HD wallet. There are two way to indicate which HD address to send funds from:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "standard v2 withdraw method", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "Using ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "derivation_path", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " as a single input. E.g ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "m/44'/20'/0'/0/2", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "Using ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "account_id", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " (0), ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "chain", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " (External) & ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "address_id", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " (2) inputs. The bracketed values are the equavalent of the derivation path above.", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "To cancel the transaction generation, use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "withdraw_cancel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "withdraw_cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "When used for ZHTLC coins like ARRR or ZOMBIE, it may take some time to\ncomplete.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "init" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| --------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | The name of the coin the user desires to withdraw |\n| to | string | Coins are withdrawn to this address |\n| amount | string (numeric) | The amount the user desires to withdraw, ignored when ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "max=true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| memo | string | Optional, used for ZHTLC and Tendermint coins only. Attaches a memo to the transaction. |\n| from | string | Optional, used only for transactions using a hardware wallet. For more information, see the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Trezor Integration guide", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| from.derivation_path | string | Optional, HD wallets only. Follows the format ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "m/44'/COIN_ID'/ACCOUNT_ID'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| from.account_id | integer | Optional, HD wallets only. Generally this will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " unless you have multiple accounts registered on your HD wallet |\n| from.chain | string | Optional, HD wallets only. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "External", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": ". External is used for addresses that are intended to be visible outside of the wallet (e.g. for receiving payments). ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Internal", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " is used for addresses which are not meant to be visible outside of the wallet and is used to return the leftover change from a transaction. |\n| from.address_id | integer | Optional, HD wallets only. Check the output from coin activation to find the ID of an address with balance. |\n| max | bool | Optional. Withdraw the maximum available amount. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| fee | object | Optional. Used only to set a custom fee, otherwise fee value will be derived from a deamon's ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "estimatefee", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " (or similar) RPC method |\n| fee.type | string | Type of transaction fee; possible values: ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " |\n| fee.amount | string (numeric) | Fee amount in coin units, used only when type is ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "UtxoFixed", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " (fixed amount not depending on tx size) or ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "UtxoPerKbyte", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": " (amount per Kbyte) |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Trezor Integration guide", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command" + }, + { + "text": "Command (max = true)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-max-true" + }, + { + "text": "Command (custom UtxoFixed fee)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-custom-utxo-fixed-fee" + }, + { + "text": "Command (custom UtxoPerKbyte fee)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-custom-utxo-per-kbyte-fee" + }, + { + "text": "Command (HD wallet: derivation path option)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-hd-wallet-derivation-path-option" + }, + { + "text": "Command (HD wallet: account_id, chain & address_id option)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-hd-wallet-account-id-chain-and-address-id-option" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-2" + }, + { + "text": "status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "To get the status of your withdrawal transaction generation, use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "task::withdraw::status", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": " method. Once ready, it will provide the raw hex used to broadcast your transaction with ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": ". The response returned is the same as what is returned from the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "standard v2 withdraw method", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "standard v2 withdraw method", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ---------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "| Structure | Type | Description |\n| ------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| status | string | A short indication of how the withdrawal is progressing. |\n| details | object | Depending on the state of withdrawal progress, this will contain different information as shown in the responses below. |\n| details.to | array of strings | Coins are withdrawn to these addresses; this may contain the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " address, where change from UTXO coins is sent. |\n| details.from | array of strings | Coins are withdrawn from this address; the array contains a single element, but transactions may be sent from several addresses (UTXO coins) |\n| details.my_balance_change | string (numeric) | the expected balance of change in ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " after the transaction broadcasts |\n| details.received_by_me | string (numeric) | the amount of coins received by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " after the transaction broadcasts; the value may be above zero when the transaction requires that the Komodo DeFi Framework API send change to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " |\n| details.spent_by_me | string (numeric) | the amount of coins spent by ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "my_address", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "; this value differ from the request amount, as the transaction fee is added here |\n| details.total_amount | string (numeric) | the total amount of coins transferred |\n| details.fee_details | object | the fee details of the generated transaction; ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "fee_details.type", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " is \"Utxo\" for Z coins. ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "fee_details.coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " will be the same as ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "details.coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "fee_details.amount", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " will be a numeric value. |\n| details.tx_hash | string | the hash of the generated transaction |\n| details.tx_hex | string | transaction bytes in hexadecimal format; use this value as input for the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "send_raw_transaction", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " |\n| details.coin | string | the name of the coin the user wants to withdraw |\n| details.transaction_type | string | Transaction type will be ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "StandardTransfer", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": " for Z coin transactions. |\n| details.kmd_rewards | object (optional) | If supported (e.g. when withdrawing ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "KMD", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "), an object containing information about accrued rewards. |\n| details.kmd_rewards.amount | string (numeric, optional) | The amount of accrued rewards |\n| details.kmd_rewards.claimed_by_me | bool (optional) | Whether or not the rewards been claimed by me. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-2" + }, + { + "text": "Response (Generating transaction)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-generating-transaction" + }, + { + "text": "Response (Generating transaction complete)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-generating-transaction-complete" + }, + { + "text": "Response (Generating KMD transaction complete with rewards info)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-generating-kmd-transaction-complete-with-rewards-info" + }, + { + "text": "Response (No such task / task expired)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-no-such-task-task-expired" + }, + { + "text": "Response (error, waiting for user to confirm signing on hardware wallet device)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-error-waiting-for-user-to-confirm-signing-on-hardware-wallet-device" + }, + { + "text": "cancel", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "cancel" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "cancel" + }, + { + "text": "task::withdraw::cancel", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "cancel" + }, + { + "text": " method to cancel the withdrawal preparation task.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "cancel" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-3" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | --------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the withdraw process. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-4" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ------ | -------------------------------------------------------------- |\n| result | string | Indicates task cancellation was succesful. |\n| error | string | An error message to explain what went wrong. |\n| error_path | string | An indicator of the class or function which reurned the error. |\n| error_trace | string | An indicator of where in the source code the error was thrown. |\n| error_type | string | An enumerated value for the returned error. |\n| error_data | string | The input task ID which resulted in the error. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "command-3" + }, + { + "text": "Response (Success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-success" + }, + { + "text": "Response (Error: No such task / task expired)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-error-no-such-task-task-expired" + }, + { + "text": "Response (Error: Task already finished)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/task_withdraw", + "closestElementReference": "response-error-task-already-finished" + } + ], + "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation": [ + { + "text": "Initialize ZHTLC Coin Activation", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "initialize-zhtlc-coin-activation" + }, + { + "text": "To enable Z coins you also need to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "initialize-zhtlc-coin-activation" + }, + { + "text": "install some Zcash\nParams", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "initialize-zhtlc-coin-activation" + }, + { + "text": "install some Zcash\nParams", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "initialize-zhtlc-coin-activation" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| ------------------ | ------ | -------------------------------------------------------------------------------------------------------------------- |\n| ticker | string | Ticker of coin to activate |\n| activation_params | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments" + }, + { + "text": "ActivationRpcData", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments" + }, + { + "text": " object. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments" + }, + { + "text": "ActivationRpcData", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | --------------------------------------------------------- |\n| task_id | integer | An identifying number which is used to query task status. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "examples" + }, + { + "text": "Enable Z coin without any optional parameters", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "enable-z-coin-without-any-optional-parameters" + }, + { + "text": "Sync from block 2528700, with custom ", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "path-and-scan-params" + }, + { + "text": ".zcash-params", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "path-and-scan-params" + }, + { + "text": " path and scan params", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "path-and-scan-params" + }, + { + "text": "Sync from sapling activation height (earliest)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "sync-from-sapling-activation-height-earliest" + }, + { + "text": "The Z coin lightwallet client only supports blocks that are post-sapling. The sapling activation height for Z coins can be found in the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "sync-from-sapling-activation-height-earliest" + }, + { + "text": "coins file", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "sync-from-sapling-activation-height-earliest" + }, + { + "text": "coins file", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "sync-from-sapling-activation-height-earliest" + }, + { + "text": "Using websockets to sync from Proof of Keys Day, 2023.", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "using-websockets-to-sync-from-proof-of-keys-day-2023" + }, + { + "text": "About proof of Keys Day", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "using-websockets-to-sync-from-proof-of-keys-day-2023" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-2" + }, + { + "text": "Activation Status", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "activation-status" + }, + { + "text": "Z coins need to build sync a local block cache and wallet database before they can be used. Using ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "activation-status" + }, + { + "text": "task_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "activation-status" + }, + { + "text": " as an input, this method will return the current status of the activation process.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "activation-status" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": "| Parameter | Type | Description |\n| -------------------- | ------- | ---------------------------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the initialisation process. |\n| forget_if_finished | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": ", will return final response for completed tasks. Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-3" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------ | --------------------------------------------------------------------------------------------------------------------- |\n| status | string | A short indication of how the enabling is progressing. |\n| details | object | Depending on the state of enabling progress, this will contain different information as shown in the responses below. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "examples-2" + }, + { + "text": "Status of Z coin activation", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "status-of-z-coin-activation" + }, + { + "text": "Response (ActivatingCoin - enabling has started)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-activating-coin-enabling-has-started" + }, + { + "text": "Response (UpdatingBlocksCache)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-updating-blocks-cache" + }, + { + "text": "Response (BuildingWalletDb)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-building-wallet-db" + }, + { + "text": "Response (CoinCreationError - no Zcash Params)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-coin-creation-error-no-zcash-params" + }, + { + "text": "Response (error - NoSuchTask)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-no-such-task" + }, + { + "text": "You'll see this if the task number does not exist, or the task has already completed.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-no-such-task" + }, + { + "text": "Response (error - InvalidRequest)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-invalid-request" + }, + { + "text": "Response (Enabling complete)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-enabling-complete" + }, + { + "text": "Response (no Zcash Params)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-no-zcash-params" + }, + { + "text": "Response (error - no such task)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-no-such-task-2" + }, + { + "text": "You'll see this if the task number does not exist, or the task has already completed.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-no-such-task-2" + }, + { + "text": "Cancel Activation", + "tagName": "h2", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "cancel-activation" + }, + { + "text": "If you want to cancel the enabling process before it has completed, you can use this method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "cancel-activation" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-3" + }, + { + "text": "| Structure | Type | Description |\n| --------- | ------- | --------------------------------------------------------------------- |\n| task_id | integer | The identifying number returned when initiating the enabling process. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-4" + }, + { + "text": "| Structure | Type | Description |\n| ------------ | ------ | -------------------------------------------------------------- |\n| result | string | Indicates task cancellation was succesful. |\n| error | string | An error message to explain what went wrong. |\n| error_path | string | An indicator of the class or function which reurned the error. |\n| error_trace | string | An indicator of where in the source code the error was thrown. |\n| error_type | string | An enumerated value for the returned error. |\n| error_data | string | The input task ID which resulted in the error. |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "examples-3" + }, + { + "text": "Command", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "command" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-success" + }, + { + "text": "Response (success - already finished)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-success-already-finished" + }, + { + "text": "Response (error - no such task)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/activation", + "closestElementReference": "response-error-no-such-task-3" + } + ], + "komodo-defi-framework/api/v20-dev/zhtlc_coins": [ + { + "text": "ZHTLC Coin Methods", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "ZHTLC coins, like Pirate (ARRR) and the test coin ZOMBIE take a little longer to enable, and use a new two step method to enable.\nActivation can take a little while the first time, as we need to download some block cache data, and build a wallet database.\nSubsequent enabling will be faster, but still take a bit longer than other coins. The second step for activation is optional, but allows us to check the status of the activation process.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "To activate ZHTLC coins, you need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": " methods:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Initialize activation with with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Query activation status with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Cancel activation with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::cancel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::enable_z_coin::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "To withdraw ZHTLC coins, you need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": " methods:", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Generate a transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::init", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::init", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Query its status with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::status", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::status", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Cancel generating the transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::cancel", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "task::withdraw::cancel", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "Broadcast the transaction with ", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "send_raw_transaction", + "tagName": "li", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "send_raw_transaction", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "ZHTLC coins are not compatible with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "v2 my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "legacy my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": " methods.\nTo get the transaction history for ZHTLC coins, you need to use the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "z_coin_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": " method.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "v2 my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "legacy my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + }, + { + "text": "z_coin_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins", + "closestElementReference": "zhtlc-coin-methods" + } + ], + "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history": [ + { + "text": "ZHTLC Coin Transaction History", + "tagName": "h1", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "To get the transaction history for ZHTLC coins, you need to use this special method - the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "v2 my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "legacy my_tx_history", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": " methods are not compatible with ZHTLC coins. Currently trasaction memos will not be displayed in output, though they can be added to outgoing transactions with the ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "task::withdraw", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": " methods.", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "v2 my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "legacy my_tx_history", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "task::withdraw", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "zhtlc-coin-transaction-history" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": "| Structure | Type | Description |\n| -------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of the coin to get history for. |\n| limit | integer | Optional. Limits the number of returned transactions. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": "10", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": ". Ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": "max = true", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": ". |\n| paging_options.FromId | string | Optional. Komodo DeFi Framework API will skip records until it reaches this ID, skipping the from_id as well; track the internal_id of the last displayed transaction to find the value of this field for the next page |\n| paging_options.PageNumber | integer | Optional. Komodo DeFi Framework API will return limit swaps from the selected page. Ignored if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": "FromId", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": " . |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "| Structure | Type | Description |\n| -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| transactions | array of objects | transactions data |\n| from_id | string | the from_id specified in the request; this value is null if from_id was not set |\n| skipped | number | the number of skipped records (i.e. the position of ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": " in the list + 1); this value is 0 if ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "from_id", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": " was not set |\n| limit | number | the limit that was set in the request; note that the actual number of transactions can differ from the specified limit (e.g. on the last page) |\n| total | number | the total number of transactions available |\n| page_number | number | the page_number that was set in the request |\n| total_pages | number | total pages available with the selected limit |\n| current_block | number | the number of the latest block of coin blockchain |\n| sync_status | object | A standard ", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": " object. Provides the information that helps to track the progress of transaction history preloading at background |", + "tagName": "p", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "SyncStatus", + "tagName": "a", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "examples" + }, + { + "text": "Response (success)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response-success" + }, + { + "text": "Response (error - coin not supported)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response-error-coin-not-supported" + }, + { + "text": "Response (error - coin not active)", + "tagName": "h4", + "path": "komodo-defi-framework/api/v20-dev/zhtlc_coins/transaction_history", + "closestElementReference": "response-error-coin-not-active" + } + ], + "komodo-defi-framework/changelog": [ + { + "text": "Change Log", + "tagName": "h1", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "change-log" + }, + { + "text": "Komodo DeFi Framework v2.1.0-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v2-1-0-beta" + }, + { + "text": "Essential New Features: Trading Protocol Upgrade, HD Wallet, Event Streaming, and Seeds Management", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "essential-new-features-trading-protocol-upgrade-hd-wallet-event-streaming-and-seeds-management" + }, + { + "text": "This release introduces a range of significant features designed to enhance the framework’s capabilities. The trading protocol has been upgraded to boost the security and reliability of swaps. HD Wallets have been integrated to enhance privacy and streamline address management for both UTXO and EVM chains. Event Streaming has been implemented to provide clients with real-time balance updates, with more real-time events planned for future updates. Seed Management has been enhanced to ensure robust seed generation and storage. These features are complemented by advancements in the NFT feature, expanded chain support for Trezor, fee improvements, ARRR/Pirate support in browser environments, and updates to the Tendermint protocol that facilitate integration with external wallets.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "essential-new-features-trading-protocol-upgrade-hd-wallet-event-streaming-and-seeds-management" + }, + { + "text": "Release Notes", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes" + }, + { + "text": "Features:", + "tagName": "h4", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Trading Protocol Upgrade:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "A major upgrade to the trading protocol (enabled with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"use_trading_proto_v2\": true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") was implemented by @artemii235 in several PRs. This upgrade is currently available only for UTXO/UTXO swaps. All other swap types are not yet supported with this new protocol.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This upgrade introduces significant enhancements:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Immediate refund handling for taker payments, including DEX fee refunds, and subsequent immediate maker payment refunds, effectively solving maker/taker backout issues.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "New RPCs: ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_swap_status", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_recent_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "active_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " V2.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Upgraded swap data is also accessible through V1 RPCs.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Important note:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " Seednodes must be updated to support and rebroadcast new swap protocol messages.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1927", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1958", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1980", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2015", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2046", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Trading Protocol Upgrade:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "A major upgrade to the trading protocol (enabled with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"use_trading_proto_v2\": true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") was implemented by @artemii235 in several PRs. This upgrade is currently available only for UTXO/UTXO swaps. All other swap types are not yet supported with this new protocol.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "A major upgrade to the trading protocol (enabled with ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"use_trading_proto_v2\": true", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") was implemented by @artemii235 in several PRs. This upgrade is currently available only for UTXO/UTXO swaps. All other swap types are not yet supported with this new protocol.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This upgrade introduces significant enhancements:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Immediate refund handling for taker payments, including DEX fee refunds, and subsequent immediate maker payment refunds, effectively solving maker/taker backout issues.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "New RPCs: ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_swap_status", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_recent_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "active_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " V2.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Upgraded swap data is also accessible through V1 RPCs.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Important note:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " Seednodes must be updated to support and rebroadcast new swap protocol messages.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This upgrade introduces significant enhancements:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Immediate refund handling for taker payments, including DEX fee refunds, and subsequent immediate maker payment refunds, effectively solving maker/taker backout issues.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "New RPCs: ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_swap_status", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "my_recent_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "active_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " V2.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Upgraded swap data is also accessible through V1 RPCs.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Important note:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " Seednodes must be updated to support and rebroadcast new swap protocol messages.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1927", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1958", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1980", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2015", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2046", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1927", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1958", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1980", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2015", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2046", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1927", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1958", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1980", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2015", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2046", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD Wallet:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD wallet functionalities were fully implemented by @shamardy for UTXO and EVM coins, allowing users to enable the feature with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"enable_hd\": true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ". For Tendermint and Pirate coins, only a single address is supported, following the BIP32/39/44 standards.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This implementation simplifies the process of importing mnemonics from other wallets into the Komodo DeFi Framework (KDF), enabling users to retain their balances, transaction history, and more.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Users can now manage multiple addresses for UTXO and EVM coins, enhancing flexibility and control. The ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "path_to_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter was added to coin activation requests to set the default account'/change/address_index path used for swaps. If not provided, the default path will be 0'/0/0.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD withdrawals from any account'/change/address_index path were added for UTXO, EVM, Tendermint, and ARRR coins.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Address scanning for balances is supported through the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " RPC, and users can manage their HD wallet with new RPCs such as ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "These RPCs (", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") can be managed through the task manager using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For full HD wallet functionalities, including balance scanning and withdrawals, use task manager-enabled methods like ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_eth::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_qtum::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_utxo::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_erc20::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and manage tasks through ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Task manager withdrawals are also supported using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::withdraw::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1933", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1962", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD Wallet:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD wallet functionalities were fully implemented by @shamardy for UTXO and EVM coins, allowing users to enable the feature with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"enable_hd\": true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ". For Tendermint and Pirate coins, only a single address is supported, following the BIP32/39/44 standards.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD wallet functionalities were fully implemented by @shamardy for UTXO and EVM coins, allowing users to enable the feature with ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "\"enable_hd\": true", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ". For Tendermint and Pirate coins, only a single address is supported, following the BIP32/39/44 standards.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This implementation simplifies the process of importing mnemonics from other wallets into the Komodo DeFi Framework (KDF), enabling users to retain their balances, transaction history, and more.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "This implementation simplifies the process of importing mnemonics from other wallets into the Komodo DeFi Framework (KDF), enabling users to retain their balances, transaction history, and more.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Users can now manage multiple addresses for UTXO and EVM coins, enhancing flexibility and control. The ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "path_to_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter was added to coin activation requests to set the default account'/change/address_index path used for swaps. If not provided, the default path will be 0'/0/0.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Users can now manage multiple addresses for UTXO and EVM coins, enhancing flexibility and control. The ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "path_to_address", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter was added to coin activation requests to set the default account'/change/address_index path used for swaps. If not provided, the default path will be 0'/0/0.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD withdrawals from any account'/change/address_index path were added for UTXO, EVM, Tendermint, and ARRR coins.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "HD withdrawals from any account'/change/address_index path were added for UTXO, EVM, Tendermint, and ARRR coins.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Address scanning for balances is supported through the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " RPC, and users can manage their HD wallet with new RPCs such as ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Address scanning for balances is supported through the ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " RPC, and users can manage their HD wallet with new RPCs such as ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "These RPCs (", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") can be managed through the task manager using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "These RPCs (", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "scan_for_new_addresses", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "account_balance", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_new_address", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "create_new_account", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ") can be managed through the task manager using ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For full HD wallet functionalities, including balance scanning and withdrawals, use task manager-enabled methods like ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_eth::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_qtum::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_utxo::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_erc20::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and manage tasks through ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For full HD wallet functionalities, including balance scanning and withdrawals, use task manager-enabled methods like ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_eth::init", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_qtum::init", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_utxo::init", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::enable_erc20::init", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", and manage tasks through ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::::(init, cancel, status)", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Task manager withdrawals are also supported using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::withdraw::init", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Task manager withdrawals are also supported using ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "task::withdraw::init", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1933", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1962", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1933", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1962", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1933", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1962", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Event Streaming:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Streaming channels using Server-Sent Events (SSE) to continuously send data to clients were implemented by @onur-ozkan in several PRs. This feature supports various event types, including P2P network events, coin balance events, error events, and heartbeat events.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "P2P network events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Streaming real-time updates about the network status.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Coin balance events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": For UTXOs, EVM, ARRR/Pirate by @borngraced, and Tendermint Protocols, providing continuous balance updates.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Error events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Emitted when there's an error in generating an event, ensuring robust monitoring.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Heartbeat events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Periodic notifications about the health of the streaming channel.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For WebAssembly (Wasm), event streaming uses Shared Workers instead of SSE, enabling a more flexible and efficient event handling mechanism.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "SharedWorker support was added, allowing any worker path in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", with a default to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_streaming_worker.js", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To handle broadcasted messages from the client side, an event listener must be implemented within the client browser environment to capture and process these events as they are streamed.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To utilize this feature, the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " needs to be added to the KDF config before starting.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1945", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1978", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2013", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2041", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2058", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2076", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2080", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Event Streaming:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Streaming channels using Server-Sent Events (SSE) to continuously send data to clients were implemented by @onur-ozkan in several PRs. This feature supports various event types, including P2P network events, coin balance events, error events, and heartbeat events.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Streaming channels using Server-Sent Events (SSE) to continuously send data to clients were implemented by @onur-ozkan in several PRs. This feature supports various event types, including P2P network events, coin balance events, error events, and heartbeat events.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "P2P network events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Streaming real-time updates about the network status.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "P2P network events", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Streaming real-time updates about the network status.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Coin balance events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": For UTXOs, EVM, ARRR/Pirate by @borngraced, and Tendermint Protocols, providing continuous balance updates.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Coin balance events", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": For UTXOs, EVM, ARRR/Pirate by @borngraced, and Tendermint Protocols, providing continuous balance updates.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Error events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Emitted when there's an error in generating an event, ensuring robust monitoring.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Error events", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Emitted when there's an error in generating an event, ensuring robust monitoring.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Heartbeat events", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Periodic notifications about the health of the streaming channel.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Heartbeat events", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ": Periodic notifications about the health of the streaming channel.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For WebAssembly (Wasm), event streaming uses Shared Workers instead of SSE, enabling a more flexible and efficient event handling mechanism.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "SharedWorker support was added, allowing any worker path in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", with a default to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_streaming_worker.js", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To handle broadcasted messages from the client side, an event listener must be implemented within the client browser environment to capture and process these events as they are streamed.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "For WebAssembly (Wasm), event streaming uses Shared Workers instead of SSE, enabling a more flexible and efficient event handling mechanism.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "SharedWorker support was added, allowing any worker path in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", with a default to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_streaming_worker.js", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To handle broadcasted messages from the client side, an event listener must be implemented within the client browser environment to capture and process these events as they are streamed.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To utilize this feature, the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " needs to be added to the KDF config before starting.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "To utilize this feature, the ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "event_stream_configuration", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " needs to be added to the KDF config before starting.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1945", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1978", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2013", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2041", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2058", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2076", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2080", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1945", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1978", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2013", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2041", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2058", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2076", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2080", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1945", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1978", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2013", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2041", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2058", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2076", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2080", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed Management:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed generation, encryption, and storage were implemented by @shamardy, introducing secure methods for seed handling, including strong encryption and key derivation techniques.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_mnemonic", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " API for retrieving mnemonics as plaintext or encrypted.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Added support for a ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter in the configuration, enabling KDF to handle seed management.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " is used, ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_password", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " must be provided, allowing for encrypted storage and retrieval of mnemonics.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If no mnemonic is provided, a new one is generated, encrypted, and stored.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Existing mnemonics can be imported and encrypted, or mnemonics can be imported in an encrypted format.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a global database for storing encrypted mnemonics and wallet names, separate from individual wallet-specific databases.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed management is fully integrated within KDF when ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " config parameter is used, bypassing the need for external mnemonic handling.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2014", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1939", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed Management:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed generation, encryption, and storage were implemented by @shamardy, introducing secure methods for seed handling, including strong encryption and key derivation techniques.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed generation, encryption, and storage were implemented by @shamardy, introducing secure methods for seed handling, including strong encryption and key derivation techniques.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_mnemonic", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " API for retrieving mnemonics as plaintext or encrypted.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a new ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "get_mnemonic", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " API for retrieving mnemonics as plaintext or encrypted.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Added support for a ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter in the configuration, enabling KDF to handle seed management.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " is used, ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_password", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " must be provided, allowing for encrypted storage and retrieval of mnemonics.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If no mnemonic is provided, a new one is generated, encrypted, and stored.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Existing mnemonics can be imported and encrypted, or mnemonics can be imported in an encrypted format.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Added support for a ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " parameter in the configuration, enabling KDF to handle seed management.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " is used, ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_password", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " must be provided, allowing for encrypted storage and retrieval of mnemonics.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "If no mnemonic is provided, a new one is generated, encrypted, and stored.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Existing mnemonics can be imported and encrypted, or mnemonics can be imported in an encrypted format.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a global database for storing encrypted mnemonics and wallet names, separate from individual wallet-specific databases.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Introduced a global database for storing encrypted mnemonics and wallet names, separate from individual wallet-specific databases.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed management is fully integrated within KDF when ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " config parameter is used, bypassing the need for external mnemonic handling.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Seed management is fully integrated within KDF when ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "wallet_name", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": " config parameter is used, bypassing the need for external mnemonic handling.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2014", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1939", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "Relevant PRs:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2014", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1939", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#2014", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "#1939", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "features" + }, + { + "text": "NB - Backwards compatibility breaking changes", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "The ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "mm2", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": " binaries have been renamed to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "kdf", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": ", with backward-compatible copies provided for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "mm2", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": " naming. However, WASM binaries use the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "kdf", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": " naming only, which is a breaking change. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "#2126", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "#2126", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes" + }, + { + "text": "New Contributors", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "@mariocynicys made their first contribution in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2061", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2061", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "@r2st made their first contribution in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2091", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2091", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "@CharlVS made their first contribution in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2163", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/pull/2163", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "Full Changelog", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": ": ", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/compare/v2.0.0-beta...v2.1.0-beta", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/compare/v2.0.0-beta...v2.1.0-beta", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "new-contributors" + }, + { + "text": "Enhancements:", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "KMD Burn:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "KMD dex fee burn for upgraded swaps was added. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2046", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "KMD dex fee burn for upgraded swaps was added. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2046", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2046", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Network Enhancements:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "A new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "sign_raw_transaction", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC was added for UTXO and EVM coins, facilitating future air-gapped wallet implementations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1930", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "A new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "sign_raw_transaction", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC was added for UTXO and EVM coins, facilitating future air-gapped wallet implementations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1930", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1930", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Hardware Wallet:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Trezor now supports SegWit for withdrawals. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1984", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Trezor support was added for EVM coins/tokens using task manager activation methods. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1962", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Support for unsigned Tendermint transactions using Ledger's Keplr extension was added, excluding HTLC transactions and swap operations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2148", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Trezor now supports SegWit for withdrawals. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1984", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1984", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Trezor support was added for EVM coins/tokens using task manager activation methods. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1962", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1962", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Support for unsigned Tendermint transactions using Ledger's Keplr extension was added, excluding HTLC transactions and swap operations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2148", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2148", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "NFT Integration:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "A new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "clear_nft_db", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC for NFT data management was added, enabling selective or complete NFT DB data clearance. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2039", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "NFT can now be enabled using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_nft", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ", similar to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_erc20", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ". ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2049", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "A new ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "clear_nft_db", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC for NFT data management was added, enabling selective or complete NFT DB data clearance. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2039", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2039", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "NFT can now be enabled using ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_nft", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ", similar to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "enable_erc20", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ". ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2049", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2049", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Simple Maker Bot:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Maker bot was updated to support multiple price URLs. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2027", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "testcoin", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was added to provider options, allowing testing of the maker bot using test chain assets. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2161", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Maker bot was updated to support multiple price URLs. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2027", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2027", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "testcoin", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was added to provider options, allowing testing of the maker bot using test chain assets. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2161", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2161", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Swap Stats DB:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "stats_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " table now includes GUI and KDF version data used for a swap. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2061", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @mariocynicys", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "stats_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " table now includes GUI and KDF version data used for a swap. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2061", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @mariocynicys", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2061", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "P2P Layer:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Added ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "max_concurrent_connections", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " to KDF config to control the maximum number of concurrent connections for Gossipsub. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2063", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Added ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "max_concurrent_connections", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " to KDF config to control the maximum number of concurrent connections for Gossipsub. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2063", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2063", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ARRR/Pirate:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ARRR/Pirate wallet and Dex operations now work in browser environments/WASM. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1957", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2077", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Syncing and activation improvements were made, including stopping sync status after main sync and refining ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "first_sync_block", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " handling. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2089", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ARRR/Pirate wallet and Dex operations now work in browser environments/WASM. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1957", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2077", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#1957", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2077", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Syncing and activation improvements were made, including stopping sync status after main sync and refining ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "first_sync_block", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " handling. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2089", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2089", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "EVM Transport:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ETH websocket transport was introduced, and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "komodo-defi-proxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " signed messages were supported for websocket transport. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2058", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ETH websocket transport was introduced, and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "komodo-defi-proxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " signed messages were supported for websocket transport. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2058", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2058", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Tendermint Integration:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Nucleus chain support was introduced as an alternative HTLC backend to Iris. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2079", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Pubkey-only mode for Tendermint protocol was introduced, allowing use of any external wallet for wallet and swap operations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ibc_withdraw", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC was removed, and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "withdraw", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was refactored to support IBC transfers by automatically finding IBC channels. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Nucleus chain support was introduced as an alternative HTLC backend to Iris. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2079", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2079", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Pubkey-only mode for Tendermint protocol was introduced, allowing use of any external wallet for wallet and swap operations. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "ibc_withdraw", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " RPC was removed, and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "withdraw", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was refactored to support IBC transfers by automatically finding IBC channels. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2088", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Fees Improvements:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "EIP-1559 gas fee estimator and RPCs were added for ETH, including priority fee support for withdrawals and swaps, and improved gas limits for swap transactions. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2051", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "gas_limit", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " parameter can be used in coin configs to override default gas limit values. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2137", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "EIP-1559 gas fee estimator and RPCs were added for ETH, including priority fee support for withdrawals and swaps, and improved gas limits for swap transactions. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2051", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2051", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "gas_limit", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " parameter can be used in coin configs to override default gas limit values. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2137", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2137", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Rust Toolchain:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Toolchain was upgraded to Rust toolchain version 1.72 nightly (nightly-2023-06-01). ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2149", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "rust-analyzer", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was added into the workspace toolchain. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2179", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Toolchain was upgraded to Rust toolchain version 1.72 nightly (nightly-2023-06-01). ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2149", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2149", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "rust-analyzer", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " was added into the workspace toolchain. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2179", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2179", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "CI Builds:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "MacOS builds for Apple Silicon are now provided through the CI pipeline. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2163", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @CharlVS", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "MacOS builds for Apple Silicon are now provided through the CI pipeline. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2163", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @CharlVS", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2163", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Implemented root application directory ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ".kdf", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " under ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "$HOME", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " to consolidate all runtime files, enhancing user experience by following standard UNIX practices. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2102", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2102", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Swaps and orders file handling was enhanced to use ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": ".tmp", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " files to avoid concurrent reading/writing issues. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2118", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2118", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "UTXO P2PK balance is now shown as part of the P2PKH/Legacy address balance and can be spent in withdrawals and swaps. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2053", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": " by @mariocynicys", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "#2053", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "enhancements" + }, + { + "text": "Bug Fixes:", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Additional checks were added for malicious ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "token_uri", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " links. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2100", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2100", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Improved environment detection to ensure the correct method is used for accessing the IndexedDB factory, accommodating both window and worker contexts. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#1953", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2131", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#1953", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2131", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Cursor implementation was fixed, ensuring stable iteration over items. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2028", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2028", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Tendermint Integration:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Tendermint fee calculation was fixed to use ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "get_receiver_trade_fee", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " in platform coins. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2106", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Transaction history handling was enhanced to support base64 encoded transaction values for Cosmos-based networks, preventing missing transactions in the history table. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2133", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "The precision of max amount handling was improved for Tendermint withdraw operations by simulating the transaction and removing the estimated fee. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2155", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Account sequence numbers are now resolved locally, avoiding incorrect sequence numbers from cached responses. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2164", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Tendermint fee calculation was fixed to use ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "get_receiver_trade_fee", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " in platform coins. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2106", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2106", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Transaction history handling was enhanced to support base64 encoded transaction values for Cosmos-based networks, preventing missing transactions in the history table. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2133", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2133", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "The precision of max amount handling was improved for Tendermint withdraw operations by simulating the transaction and removing the estimated fee. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2155", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2155", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Account sequence numbers are now resolved locally, avoiding incorrect sequence numbers from cached responses. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2164", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2164", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Swap Watchers:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "UTXO swaps were fixed to apply events that occurred while the taker was offline, such as maker spending or watcher refunding the taker payment. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2114", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "UTXO swaps were fixed to apply events that occurred while the taker was offline, such as maker spending or watcher refunding the taker payment. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2114", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @dimxy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2114", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "BCH block header deserialization was fixed to match BTC's handling of ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "KAWPOW", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " version headers. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2099", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2099", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "wallet-only", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " restriction was removed from ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "max_maker_vol", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " RPC, enabling its use for wallet-only mode assets. ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2153", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": " by @onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "#2153", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "bug-fixes" + }, + { + "text": "Komodo DeFi Framework v2.0.0-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v2-0-0-beta" + }, + { + "text": "Network Evolution & KMD Burn: Enhancing KMD's Role in Komodo's DeFi Framework", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "network-evolution-and-kmd-burn-enhancing-kmds-role-in-komodos-de-fi-framework" + }, + { + "text": "Introducing pivotal network enhancements to pave the way for an evolved DEX P2P network, Komodo DeFi Framework 2.0.0-beta marks a strategic step forward. This release not only streamlines network performance but also introduces a deflationary aspect to KMD, underscoring its utility and value in Komodo Platform's expanding ecosystem.", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "network-evolution-and-kmd-burn-enhancing-kmds-role-in-komodos-de-fi-framework" + }, + { + "text": "Release Notes", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Features:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "KMD Burn:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Burning 25% of the taker fee when paid in KMD was implemented by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2006", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Burning 25% of the taker fee when paid in KMD was implemented by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2006", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2006", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Swap watcher nodes (only for UTXO/UTXO swaps):", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "For UTXO/UTXO swaps, watcher nodes will either complete the swap for taker or refund the taker payment if the taker goes offline after sending their payment. This was implemented by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1457", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1496", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1523", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1552", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Using watcher nodes for swaps were enabled by default for UTXO/UTXO swaps by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ". All nodes doing a swap will broadcast a watcher message after the taker payment is sent if both coins swapped are supported by watchers (currently only UTXO) ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1859", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "For UTXO/UTXO swaps, watcher nodes will either complete the swap for taker or refund the taker payment if the taker goes offline after sending their payment. This was implemented by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1457", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1496", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1523", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1552", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1457", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1496", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1523", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1552", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Using watcher nodes for swaps were enabled by default for UTXO/UTXO swaps by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ". All nodes doing a swap will broadcast a watcher message after the taker payment is sent if both coins swapped are supported by watchers (currently only UTXO) ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1859", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1859", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Enhancements:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Network Enhancements:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "P2P layer was upgraded to use the latest stable libp2p version by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1878", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "7777", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " network was deprecated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2020", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Seednodes for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "netid", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "8762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " were updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2024", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "libp2p-yamux", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " was updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to use yamux ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v0.13", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " (new version) by default and to fall back to yamux ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v0.12", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " (old version) when setting any configuration options ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "The backpressure buffer cap was increased from ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "25", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "256", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "New protocol version (Version2) was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to be used for peer exchange and request-response behaviours in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Network information is now written to stdout so users can find mm2 ports easily ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2034", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "P2P layer was upgraded to use the latest stable libp2p version by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1878", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1878", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "7777", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " network was deprecated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2020", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2020", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Seednodes for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "netid", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "8762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " were updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2024", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2024", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "libp2p-yamux", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " was updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to use yamux ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v0.13", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " (new version) by default and to fall back to yamux ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v0.12", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " (old version) when setting any configuration options ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "The backpressure buffer cap was increased from ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "25", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "256", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "New protocol version (Version2) was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to be used for peer exchange and request-response behaviours in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2030", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Network information is now written to stdout so users can find mm2 ports easily ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2034", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2034", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "NFT feature was released in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v1.0.6-beta", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ", this release adds significant enhancements to this feature:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "exclude_spam", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "exclude_phishing", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " params were added for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "get_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "get_nft_transfers", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " RPCs by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1959", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Spam transfers with empty meta was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to no longer update ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1989", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "v1.0.6-beta", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "exclude_spam", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "exclude_phishing", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " params were added for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "get_nft_list", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "get_nft_transfers", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " RPCs by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1959", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1959", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Spam transfers with empty meta was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to no longer update ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1989", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1989", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "version", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " method was added to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "PUBLIC_METHODS", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " that require no login by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2001", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2001", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "An additional ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "PRICE_ENDPOINTS", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " url which is a cached copy of ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "https://prices.komodian.info/api/v2/tickers", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " and is updated every minute was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2032", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2032", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Bug Fixes:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "ARRR/Pirate:", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "ARRR infrastructure for lightwallet servers uses a fork of ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "lightwalletd", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ", the grpc service was renamed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "from cash.z.wallet.sdk.rpc", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "pirate.wallet.sdk.rpc", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to use the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "lightwalletd", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " fork ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1963", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Previous blocks/wallet sync was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to be resumed if ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "sync_params", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " are not provided after restart ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1967", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "ARRR infrastructure for lightwallet servers uses a fork of ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "lightwalletd", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": ", the grpc service was renamed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "from cash.z.wallet.sdk.rpc", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "pirate.wallet.sdk.rpc", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to use the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "lightwalletd", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " fork ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1963", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@smk762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1963", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Previous blocks/wallet sync was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to be resumed if ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "sync_params", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " are not provided after restart ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1967", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1967", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "EVM web3 requests timeout was reduced to 20s by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1973", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1973", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Fixed ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "0.0001", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " min threshold for TakerFee was removed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "The minimum trading volume for evm and tendermint was changed to be the smallest possible amount of the coin by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Minimum trading price was reduced by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " to be any value above 0 ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1971", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Cryptocondition", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " script type was added to utxo transactions by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1991", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1991", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "On response error the next web3 node is now tried ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1998", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1998", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "Watchtower taker-side restart bug was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1908", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#1908", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "rpcport", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": " value can now accept a string ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2026", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "#2026", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "release-notes-2" + }, + { + "text": "NB - Backwards compatibility breaking changes", + "tagName": "h3", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": "7777", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": " Network deprecation and the upgrade to a new p2p layer breaks compatibility with previous versions of Komodo DeFi Framework. Connections between nodes/clients running an older version of Komodo DeFi Framework and nodes/clients running this version will not be possible. To avoid this, all nodes/clients must be upgraded to the latest version of Komodo DeFi Framework.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": "Because of KMD burn of a part of the taker fee, the taker fee outputs for any ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": "coin/KMD", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": " swap are changed and makers running older versions will not be able to validate the taker fee, this will cause the swap to fail. This case will never happen anyway because older versions will not be able to connect to this latest version due to the network upgrade.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": "Because of the removal of the fixed 0.0001 min threshold for TakerFee, taker fee validation will also fail for these cases. Again, this case will never happen as the previous case.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "nb-backwards-compatibility-breaking-changes-2" + }, + { + "text": "Komodo DeFi Framework v1.0.7-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Enhancements:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Using a specific start date for Pirate/ARRR synchronization was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": ". This allows users to specify a specific date as the starting point for synchronization as a substitute for the checkpoint block from config or syncing from the first block ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1922", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1922", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Bug Fixes:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "PoSV coins withdrawal was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@reddink", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": ". The issue was a missing n_time field in the generated transaction. The fix now correctly considers when n_time is required, and the rawtransaction can be broadcasted ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1925", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@reddink", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1925", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Tendermint tests were fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": " by using latest relayer channel ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1929", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1929", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Price service urls were updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@smk762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1928", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@smk762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1928", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "NFT transactions that transfer multiple NFT tokens were fixed in db by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": ". log_index is now used as part of the transfers history table primary key ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1926", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1926", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "A fix was introduced by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": " to use kmd rewards for fees if change + interest is below dust threshold ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1944", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1944", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Debug info was removed from release binary by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@onur-ozkan", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": " to reduce the file size ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1954", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@onur-ozkan", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1954", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Failing tests due to BCHD were ignored by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1955", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "#1955", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-7-beta" + }, + { + "text": "Komodo DeFi Framework v1.0.6-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "New Features:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "NFT Wallet APIs for ERC721/ERC1155 tokens using Moralis Web3 was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " for multiple EVM chains to enable developers to access real-time NFT data and metadata from various blockchains without building their own backend services in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1652", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1704", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1775", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1817", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1823", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1833", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1877", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1652", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1704", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1775", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1817", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1823", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1833", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1877", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Enhancements:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "HTTPS support was added for the RPC server by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1861", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1861", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Infrastructure DNS rotation for default seed nodes was done by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@ca333", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1868", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@ca333", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1868", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Price endpoints were updated by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1869", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1869", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "IBC and standard withdrawals for Cosmos now allow users to specify the gas price and gas limit for each transaction @ozkanonur ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1894", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1894", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "CI enhancements by @ozkanonur", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "The time needed for CI completion was reduced by caching the downloaded dependencies in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1880", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Label validation on PRs was added. This validation will only succeed if one of the following labels is used but not both: ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "under review", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "in progress", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1881", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "A CI job was added to check if mm2 version was bumped before merging any pull request to main in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1899", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "All CI tests now run with the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "--no-fail-fast", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " flag, allowing other tests to proceed despite any failures ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1907", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "The time needed for CI completion was reduced by caching the downloaded dependencies in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1880", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1880", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Label validation on PRs was added. This validation will only succeed if one of the following labels is used but not both: ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "under review", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "in progress", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1881", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1881", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "A CI job was added to check if mm2 version was bumped before merging any pull request to main in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1899", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1899", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "All CI tests now run with the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "--no-fail-fast", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " flag, allowing other tests to proceed despite any failures ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1907", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1907", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Bug Fixes:", + "tagName": "p", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Some RUSTSEC advisories were fixed by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1853", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1853", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Orderbook response now returns the right age for the age field, this was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@rozhkovdmitrii", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1851", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@rozhkovdmitrii", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1851", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "A bug that caused ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "best_orders", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " rpc to return ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "is_mine: false", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " for the user's orders was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@rozhkovdmitrii", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1849", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "An optional parameter ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "exclude_mine", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " was also added to the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "best_orders", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " request that allows users to exclude their own orders from the response.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "exclude_mine", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " defaults to false to maintain the same behaviour before the PR.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@rozhkovdmitrii", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1849", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "An optional parameter ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "exclude_mine", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " was also added to the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "best_orders", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " request that allows users to exclude their own orders from the response.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "exclude_mine", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " defaults to false to maintain the same behaviour before the PR.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "A fix removed the passed config string from the error logs during mm2 initialization if there was a deserialization error was done by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1872", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1872", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "Index out of bounds errors in the ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "tx_details_by_hash", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " functions was fixed by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1915", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "#1915", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "komodo-de-fi-framework-v1-0-6-beta" + }, + { + "text": "AtomicDEX v1.0.5-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "Deprecated ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "wasm-timer", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": " dependency was removed from atomicDEX-API tree by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1836", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1836", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "log", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "getrandom", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "wasm-bindgen", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": " dependencies were updated to more recent versions that are inline with the latest libp2p upstream by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1837", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1837", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "A CI lint pipeline was added that validates pull request titles to ensure that they comply with the conventional commit specifications by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1839", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1839", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "KMD AUR were reduced from 5% to 0.01% starting at nS7HardforkHeight to comply with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "KIP-0001", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1841", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "KIP-0001", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "#1841", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-5-beta" + }, + { + "text": "AtomicDEX v1.0.4-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Some enhancements were done for ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "enable_bch_with_tokens", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "enable_eth_with_tokens", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "enable_tendermint_with_assets", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " RPCs by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1762", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "A new parameter ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "get_balances", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " was added to the above methods requests, when this parameter is set to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "false", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": ", balances will not be returned in the response. The default value for this parameter is ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " to ensure backward compatibility.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Token balances requests are now performed concurrently for the above methods.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1762", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "A new parameter ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "get_balances", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " was added to the above methods requests, when this parameter is set to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "false", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": ", balances will not be returned in the response. The default value for this parameter is ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "true", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " to ensure backward compatibility.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Token balances requests are now performed concurrently for the above methods.", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Passive parent coin state for keeping tokens active when platform is disabled was added by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1763", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1763", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Detection of a chain reorganization for SPV was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": ". If a chain reorg occurs, the new best chain headers are re-downloaded and re-validated ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1728", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1728", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "Optimization of release compilation profile for mm2 was done by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1821", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1821", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "PoSV support for UTXO coins was added by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@reddink", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1815", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "@reddink", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "#1815", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-4-beta" + }, + { + "text": "AtomicDEX v1.0.3-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "adex tool was introduced ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1729", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1729", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "bump mm2 to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "v1.0.2-beta", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1743", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1743", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "bump mm2 to ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "v1.0.3-beta", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1769", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1769", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "[release] v1.0.3 ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1771", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "#1771", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-3-beta" + }, + { + "text": "AtomicDEX v1.0.2-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "adex-cli command line utility was introduced that supplies commands: init, start, stop, status ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1729", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1729", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "CI/CD workflow logics are improved ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1736", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1736", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "Project root is simplified/refactored ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1738", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1738", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "Created base image to provide more glibc compatible pre-built binaries for linux ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1741", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1741", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "Set default log level as \"info\" ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1747", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "#1747", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-2-beta" + }, + { + "text": "AtomicDEX v1.0.1-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "2 Update pirate & zombie domains for tests ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1705", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1705", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "2 lock free avoid on account sequence problems ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1694", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1694", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "sec fixes, build-time optimizations, dependency optimizations, CI migration, etc ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1699", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1699", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "[release] 1.0.1-beta ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1721", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "#1721", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-1-beta" + }, + { + "text": "AtomicDEX-v1.0.0-beta", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 spv storage optimization ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1585", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1585", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "[doc] update mobile build instructions ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1661", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1661", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "disable_coin", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": " should fail if there are tokens dependent on the platform ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1651", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1651", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 fix vulnerable dependencies ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1666", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1666", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "Bugfix pubkey keepalive overflow and \"forever orders\" ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1668", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1668", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 Hardware Wallet enhancements ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1672", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1672", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 Complete MetaMask ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1674", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1674", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "Add workflow for VirusTotal results ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1676", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1676", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "2 refactor version handling ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1686", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1686", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "[release] 1.0.0-beta ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1576", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "#1576", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "atomic-dex-v1-0-0-beta" + }, + { + "text": "beta-2.1.8741", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "Don't respond to GetKnownPeers p2p msg if the number of peers requested exceeds the default number by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1445", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1445", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "[r2r] Avoid deadlock on ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "DuplexMutex", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1453", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1453", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "[r2r] Mobile libs code fixes, build instructions and CI. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1463", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1463", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "[r2r] hotfix: disallow withdraw to taproot addresses by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1503", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1503", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "update cc and cmake dependencies to be compatible with Visual Studio … by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@DeckerSU", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1532", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@DeckerSU", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1532", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "[r2r] Don't return an error if a UTXO coin is enabled with ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "trezor_coin", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " field by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1541", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "#1541", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-8741" + }, + { + "text": "beta-2.1.7404", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "Target-branch added for dependabot in mm2.1 by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1426", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1426", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "Skip orders not existing in orders_set instead of using expect. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1430", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1430", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "Fix ARRR activation. More info to activation statuses. Check point block by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1439", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "#1439", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7404" + }, + { + "text": "beta-2.1.7132", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "[r2r] Implement tx history RPC for Zcoin (ARRR). by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1336", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1336", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "[r2r] No login mode by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1341", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1341", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "[r2r] Fix for LBC block header deserializing bug by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1343", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1343", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "Release SLP, WASM, Maker bot, QTUM delegation. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1184", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1184", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "[r2r] Fix P2P OrdermatchRequest backward compatibility. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1406", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "#1406", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-7132" + }, + { + "text": "beta-2.1.6805", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[WASM] Fixing, refactoring, and implementing P2P, IndexedDB, SwapLock, SavedSwap, MySwaps, MyOrdersStorage by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1007", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1007", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "update_maker_order memory leak fix by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1068", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1068", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "MVP swaps support for SLP tokens and PIRATE. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1067", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1067", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Upload release library to nightly server during CI build. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1093", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1093", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add SLP UTXOs validation using BCHD API. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1094", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1094", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "simple market maker bot by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1066", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1066", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Enable 2.0 skeleton by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1099", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1099", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Partial lightning network node implementation by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1103", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1103", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Use 'wss' P2P protocol instead of 'ws' by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1117", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1117", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Qtum delegation by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1096", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1096", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Slurp refactoring ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#914", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1119", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#914", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1119", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add gRPC-web support in WASM (BCHD API for SLP). by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1127", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1127", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Next iteration of enable v2. Refactoring. Added enable_slp. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1130", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1130", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "simple telegram client by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1114", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1114", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "feat(lp_bot): use ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "other", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " for unknown variant in provider by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1140", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1140", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Implement enable_bch_with_tokens RPC. Refactoring by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1145", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1145", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "feat(lp_bot): cancel order on stopping mm2 context by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1143", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1143", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Fix hanging pointers ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1158", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1162", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1158", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1162", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Use parking lot mutex for maker orders by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1163", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1163", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Lightning Network Channels by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1133", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1133", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add and implement a swap recoverer ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1160", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1164", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1160", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1164", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Trezor integration PoC by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1150", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1150", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Fix orders \"leak\" due to race condition. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1178", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1178", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Implement BCH and SLP tx history. Refactoring. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1175", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1175", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Fix recreating Taker swap data by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1191", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1191", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Optimize CI pipeline to run faster checks as a separate stage. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1192", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1192", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Update CI pipeline for MacOS. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1202", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1202", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "mm2_version", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " WASM foreign function by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1213", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1213", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Changes for Linux CI by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1209", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1209", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Fix unstable test_update_maker_order_fail test by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1216", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1216", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Use komodod multiarch Docker image in tests. Do not build and upload libmm2 for desktop. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1214", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1214", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Implement requesting balances of HD wallet addresses by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1190", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1190", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Arrr integration WIP. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1204", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1204", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Expect larger integers on blockchain.scripthash.get_balance by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1218", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1218", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add confirmation settings to orderbook by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1217", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1217", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Lightning payments by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1210", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1210", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Integrate HD account storage by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1223", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1223", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Spv proof by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1207", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1207", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Sync dev with mm2.1 by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1236", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1236", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Solana by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1109", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1109", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Provide podman compatibility by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1242", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1242", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "update podman requirement by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1243", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1243", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Fix ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "coin", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "recover_funds_of_swap", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " RPC by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1249", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1249", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Simultaneous activation of coins in two modes (Iguana and Trezor) by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1227", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1227", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Add RPC call to get raw transaction encoded in hex by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@hrmhatef", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1248", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@hrmhatef", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1248", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "provide custom swap locktime functionality by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1252", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1252", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Add PR naming convention to the docs by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1257", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1257", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] add dependencies update note when basing branch on mm2.1 to the docs by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1261", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1261", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] impl get publickey hash rpc method by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1258", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1258", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Update WASM docs, fix ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "my_recent_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in WASM by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1264", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1264", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] ARRR integration WIP. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1237", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1237", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Lightning channels and payments history by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1240", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1240", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] fix spv proof validation by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1268", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1268", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Update block headers in DB in case of a chain reorganization by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1276", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1276", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Store maker_coin_htlc_privkey and taker_coin_htlc_privkey as None by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1277", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1277", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] broadcast tx to txhlp / refactor tx errors by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1245", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1245", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Sign and verify messages by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1256", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1256", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] continuously push for playground nodes by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1280", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1280", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] UTXO RPC batch requests by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1255", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1255", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] overall refactoring by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1284", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1284", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] fix ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "MM_VERSION", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " path by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1296", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1296", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Deps update by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1294", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1294", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] update rust-lightning & remove bitcoin-spv crate from our deps tree by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1300", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1300", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Temporary ignore RUSTSEC-2020-0071 (time crate potential segfault). by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1303", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1303", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "update License GPLv3 by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@ca333", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1286", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@ca333", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1286", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] fixes incorrect coin type for rpc error by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1289", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1289", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "Remove unused dependencies, add unused dependencies check step to CI by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1305", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1305", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Impl storing Infos about fiat price to MM2.db on swap completion by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1282", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@borngraced", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1282", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] fix nonce_lock problem by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1306", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1306", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] HD wallet tx history by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1285", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1285", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Implement ARRR swap in light mode. by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1302", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1302", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] split qtum utxo by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1313", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1313", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Don't return Null on ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "my_recent_swaps", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1317", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1317", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Try to find ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "check_utxo_maturity", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " from the coins config by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1315", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1315", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "update playground pipeline by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1323", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1323", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "add commit prefix for playground node by @ozkanonur in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1325", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1325", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Fix unstable test_get_channels_by_filter test by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1320", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1320", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Get rid of fomat, wite macros by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1316", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@sergeyboyko0791", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1316", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] API call optimization by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1279", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1279", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Fix rpc_password length constraints by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1329", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1329", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Allow bestorders RPC execution with number by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1327", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1327", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Remove outdated transactions from transaction history by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1328", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@caglaryucekaya", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "#1328", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "[r2r] Dependabot integration by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "https://github.com", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "...", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "@laruh", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "https://github.com", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-6805" + }, + { + "text": "beta-2.1.5724", + "tagName": "h2", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "Hotfix for FIRO block header format (prog pow).", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "hotfix for unknown destination address errors showing up by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@shamardy", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1186", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@shamardy", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1186", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "Avoid log spam and malfunctioning electrums excessive reconnects ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1193", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1161", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": ". by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@artemii235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1194", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1193", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1161", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@artemii235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1194", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "[wip] update readme by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@ca333", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1180", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@ca333", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1180", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "Remove nxt arg from help by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@tonymorony", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1199", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@tonymorony", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1199", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "feat(firo_hot_fix): add support for prog pow by ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@Milerius", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": " in ", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1235", + "tagName": "li", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "@Milerius", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + }, + { + "text": "#1235", + "tagName": "a", + "path": "komodo-defi-framework/changelog", + "closestElementReference": "beta-2-1-5724" + } + ], + "komodo-defi-framework": [ + { + "text": "Introduction to Komodo DeFi Framework", + "tagName": "h1", + "path": "komodo-defi-framework", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "Welcome to the Komodo DeFi Framework technical documentation.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "About the Komodo DeFi Framework Section", + "tagName": "h4", + "path": "komodo-defi-framework", + "closestElementReference": "about-the-komodo-de-fi-framework-section" + }, + { + "text": "This documentation is intended for developers utilizing the Komodo DeFi Framework.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-the-komodo-de-fi-framework-section" + }, + { + "text": "Conceptual Overview", + "tagName": "h4", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "A brief conceptual overview of Komodo DeFi Framework can be found in the ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Start Here", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": " > ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Product Introductions", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": " > ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Komodo DeFi Framework ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to \"Komodo DeFi Framework\" Introduction", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to \"Komodo DeFi Framework\" Introduction", + "tagName": "a", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Komodo DeFi Framework Tutorials", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section contains a more thorough conceptual explanation of Komodo DeFi Framework.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Komodo DeFi Framework Tutorials", + "tagName": "a", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Please consult our ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Learning Path Outlines", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section for more details on approaches to learning Komodo DeFi Framework from both a conceptual and technical perspective.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Learning Path Outlines", + "tagName": "a", + "path": "komodo-defi-framework", + "closestElementReference": "conceptual-overview" + }, + { + "text": "About Komodo DeFi Framework Setup", + "tagName": "h4", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-setup" + }, + { + "text": "The Komodo DeFi Framework Setup section contains basic information about setting up and using an Komodo DeFi Framework enabled environment.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-setup" + }, + { + "text": "About Komodo DeFi Framework Tutorials", + "tagName": "h4", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": "The Komodo DeFi Framework Tutorials section contains various tutorials that provide instruction for Komodo DeFi Framework usage and creation.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": "For a walkthrough covering multiple tutorials in a targeted fashion, please see the ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": " section.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "a", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework-tutorials" + }, + { + "text": "About Komodo DeFi Framework", + "tagName": "h4", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "The Komodo DeFi Framework section contains all available API commands.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "These API commands can also be called Remote Procedure Calls (or RPCs) and are used to interact with the Komodo DeFi Framework daemon using a variety of languages.", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "Recently, a ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": " binary has been introduced to simplify the process of ", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "interacting with the Komodo DeFi Framework daemon from the command line", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + }, + { + "text": "interacting with the Komodo DeFi Framework daemon from the command line", + "tagName": "a", + "path": "komodo-defi-framework", + "closestElementReference": "about-komodo-de-fi-framework" + } + ], + "komodo-defi-framework/setup/configure-mm2-json": [ + { + "text": "Komodo DeFi API configuration", + "tagName": "h1", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": "Komodo DeFi-API configuration parameters, along with additional runtime flags, and per-process environment variables are ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": "listed in the source code", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": ", and can be viewed by running the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": "./mm2 --help", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": "listed in the source code", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "komodo-de-fi-api-configuration" + }, + { + "text": "MM2.json", + "tagName": "h2", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": "When running the Komodo DeFi API via commandline with the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": " binary, some basic configuration parameters need to be defined in either an ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": " file, or at runtime.", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "mm-2-json" + }, + { + "text": "Configuration Parameters", + "tagName": "h3", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| gui | string | Information to identify which app, tool or product is using the API, e.g. ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "KomodoWallet iOS 1.0.1", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". Helps developers identify if an issue is related to specific builds or operating systems etc. |\n| netid | integer | Nework ID number, telling the Komodo DeFi Framework which network to join. 8762 is the current main network, though alternative netids can be used for testing or \"private\" trades as long as seed nodes exist to support it. |\n| passphrase | string | Your passphrase; this is the source of each of your coins private keys. ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "KEEP IT SAFE!", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " |\n| rpc_password | string | For RPC requests that need authentication, this will need to match the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "userpass", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " value in the request body. |\n| allow_weak_password | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", will allow low entropy rpc_password. If ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " rpc_password must not have 3 of the same characters in a row, must be between 8-32 characters in length, must contain at least one of each of the following: numeric, uppercase, lowercase, special character (e.g. !#$*). It also can not contain the word \"password\", or the chars ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "<", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ">", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", or ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "&", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". |\n| dbdir | string | Optional, defaults to a subfolder named ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "DB", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " in the path of your ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " binary. This path will store the Komodo DeFi-API database data. |\n| rpcip | string | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "127.0.0.1", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". IP address to bind to for RPC server. |\n| rpcport | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "7783", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". Port to use for RPC communication. |\n| rpc_local_only | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". If ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " the Komodo DeFi Framework API will allow rpc methods sent from external IP addresses. ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Warning:", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " Only use this if you know what you are doing, and have put the appropriate security measures in place. |\n| i_am_seed | boolean | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". Runs Komodo DeFi Framework API as a seed node mode (acting as a relay for Komodo DeFi Framework API clients). Use of this mode is not reccomended on the main network (8762) as it could result in a pubkey ban if non-compliant. On alternative testing or private networks, at least one seed node is required to relay information to other Komodo DeFi Framework API clients using the same netID. |\n| seednodes | list of strings | Optional. If operating on a test or private netID, the IP address of at least one seed node is required (on the main network, these are already hardcoded) |\n| enable_hd | boolean | Optional. If ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", the Komodo DeFi-API will work in only the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "HD mode", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", and coins will need to have a coin derivation path entry in the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " file for activation. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". |\n| message_service_cfg | object | Optional. This data is used to configure ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Telegram", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " messenger alerts for swap events when running using the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "makerbot functionality", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". For more information check out the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "telegram alerts guide", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " |\n| metrics | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "300", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". The interval in seconds which metrics are logged. Set to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " to disable metrics. |\n| prometheusport | integer | Optional. Only used if you are logging metrics in ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Grafana", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ". For more information check out the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Komodo DeFi metrics guide", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " |\n| prometheus_credentials | integer | Optional. Only used if you are logging metrics in ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Grafana", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " with authentication. For more information check out the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Komodo DeFi metrics guide", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " |\n| https | boolean | Optional. Only used with wss. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": ", set to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " to allow TLS/SSL enabled RPC (e.g. remote queries to a domain with a valid SSL certificate). |\n| wss_certs | object | Optional. Contains fields for ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "server_priv_key", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "certificate", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " to allow RPC or P2P communications over TLS/SSL. |\n| event_stream_configuration | object | Optional, a standard ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "EventStreamConfig", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": " object. Configuration for subscribing to events. |", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "KEEP IT SAFE!", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "HD mode", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Telegram", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "makerbot functionality", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "telegram alerts guide", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Prometheus", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Grafana", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Komodo DeFi metrics guide", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Prometheus", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Grafana", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Komodo DeFi metrics guide", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "EventStreamConfig", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "configuration-parameters" + }, + { + "text": "Example (allowing weak password):", + "tagName": "h4", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-allowing-weak-password" + }, + { + "text": "Example (not allowing weak password):", + "tagName": "h4", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-not-allowing-weak-password" + }, + { + "text": "Example (WSS with certificates):", + "tagName": "h4", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-wss-with-certificates" + }, + { + "text": "Example for HD Wallets:", + "tagName": "h4", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "If you are using HD wallets, you will need to add the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "hd_account_id", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " value to your ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " file. This value will be used in the derivation path for all coins, and will take the place of the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "COIN_ID", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " value in the following path: ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "m/44'/COIN_ID'/'/CHAIN/ADDRESS_ID", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "Using the same seed phrase with / without setting the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "hd_account_id", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " value\nwill result in different addresses being generated. For example, when using\nthe seed phrase ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "february soldier message acid member jump shadow walk novel impose puppy tornado", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": ": - If the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "hd_account_id", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " value is set to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " in\nMM2.json, the first address in the wallet returns the address\n", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "0x26cE5D1cD4CC673a1b0b980371C7c862B9503452", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " for ETH - If the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "hd_account_id", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "\nvalue is not set, the wallet will return the address\n", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "0x8c40a6E127c7a13e26ce95deA88354C3fb134580", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": " for ETH", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "example-for-hd-wallets" + }, + { + "text": "Coins file configuration", + "tagName": "h2", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "You can download and use ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "this file", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": " as a starting point for your own ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": " file. It contains all of the coins that are currently supported by the Komodo DeFi API, and is maintained by the Komodo Platform team.\nThe structure for adding additional coins can vary, please refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "listing guide", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "contact the KomodoPlatform team", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": " for assistance.", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "this file", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "listing guide", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "contact the KomodoPlatform team", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "coins-file-configuration" + }, + { + "text": "Optional environment variables:", + "tagName": "h3", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "| Variable | Type | Description |\n| ------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| MM2_CONF_PATH | string | A file path to load the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " configuration file. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " in the same folder as the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " binary. |\n| MM_COINS_PATH | string | A file path to load the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " configuration file. A comprehensive version for public use is maintained in the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "Komodo Platform coins github repository", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " |\n| MM_LOG | string | A file path to store the Komodo DeFi-API logs. |\n| USERPASS | string | For convenience, this variable can store the value of your ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "rpc_password", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": " to be referenced in any shell scripts |\n| MM_CERT_PATH | string | Full path to TLS/SSL certificate file. |\n| MM_CERT_KEY_PATH | string | Full path to TLS/SSL certificate key file. |", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "Komodo Platform coins github repository", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "optional-environment-variables" + }, + { + "text": "What now?", + "tagName": "h3", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Check out the rest of the Komodo DeFi API documentation for examples of how to:", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Enable coins", + "tagName": "li", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Enable coins", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Place orders", + "tagName": "li", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Place orders", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "View the orderbook", + "tagName": "li", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "View the orderbook", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Check your balance", + "tagName": "li", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Check your balance", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Configure bot trading!", + "tagName": "li", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Configure bot trading!", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "If you have any questions or feedback, join us on the ", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": " and tell us about your experience!", + "tagName": "p", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "a", + "path": "komodo-defi-framework/setup/configure-mm2-json", + "closestElementReference": "what-now" + } + ], + "komodo-defi-framework/setup": [ + { + "text": "Installing the Komodo DeFi Framework API", + "tagName": "h1", + "path": "komodo-defi-framework/setup", + "closestElementReference": "installing-the-komodo-de-fi-framework-api" + }, + { + "text": "Minimum Requirements for Installation", + "tagName": "h2", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "MacOS, Windows (see note below), and Linux (see note below)", + "tagName": "li", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "MacOS, Windows (see note below), and Linux (see note below)", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "64-bit (see note below for 32-bit)", + "tagName": "li", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "64-bit (see note below for 32-bit)", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "Minimum 2GB of free RAM", + "tagName": "li", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "Minimum 2GB of free RAM", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "Normal user account with admin/root privileges", + "tagName": "li", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "Normal user account with admin/root privileges", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "If you would prefer to avoid building the Komodo DeFi Framework API from source, you can\ndownload our pre-built binary ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "from our Github releases\npage.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "from our Github releases\npage.", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "minimum-requirements-for-installation" + }, + { + "text": "Note about Linux", + "tagName": "h3", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-linux" + }, + { + "text": "For Linux users, much of the following documentation assumes that you are building and running the Komodo DeFi Framework API on a Debian 9/10 or Ubuntu 18.04 host. If you have questions about other releases or distributions, ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-linux" + }, + { + "text": "please reach out to us on the #dev-marketmaker channel on Discord.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-linux" + }, + { + "text": "please reach out to us on the #dev-marketmaker channel on Discord.", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-linux" + }, + { + "text": "Note about Installing on Windows", + "tagName": "h3", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Developing software on Windows typically requires an installation of Git Bash.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Git Bash is a terminal shell based on Unix. It is similar to the Windows Shell or Windows Command Prompt, but uses Unix-based syntax.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "All instructions in the Komodo DeFi Framework documentation are given with Unix-based syntax, and therefore we recommend installing Git Bash before proceeding.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "You may download and install Git Bash for Windows here:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Download Git Bash for Windows", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Download Git Bash for Windows", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "The download should begin automatically.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Double-click the downloaded ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": ".exe", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": " file and follow the Installation Wizard.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Once Git Bash is open and running on your machine, you may continue.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-installing-on-windows" + }, + { + "text": "Note About 32-bit Operating Systems", + "tagName": "h3", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": "We are currently testing 32-bit operating system functionality. As 32-bit machines can often be comparatively older hardware, we cannot guarantee that Komodo DeFi Framework API will run successfully by default.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": "We invite users of 32-bit operating systems to test the software and ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": "report any errors to our team on the #dev-marketmaker channel on Discord", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": "report any errors to our team on the #dev-marketmaker channel on Discord", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "note-about-32-bit-operating-systems" + }, + { + "text": "Installing Dependencies", + "tagName": "h3", + "path": "komodo-defi-framework/setup", + "closestElementReference": "installing-dependencies" + }, + { + "text": "Rust", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "Install ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "Rust", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "Rust", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "Choose ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "2)", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": " to customize the installation, select ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "default host triple", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "default toolchain", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": ", and choose the ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "minimal", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": " profile.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "rust" + }, + { + "text": "cmake Version 3.12 or Higher", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "Download the cmake software here: ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "download link", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "download link", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "Unpack and follow the instructions here: ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "instructions link", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "instructions link", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "cmake-version-3-12-or-higher" + }, + { + "text": "Build Tools for Your OS", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-tools-for-your-os" + }, + { + "text": "Linux:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "linux" + }, + { + "text": "Windows:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows" + }, + { + "text": "Follow these instructions for MSVC", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows" + }, + { + "text": "Follow these instructions for MSVC", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows" + }, + { + "text": "MacOS:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os" + }, + { + "text": "Install XCode via the App Store", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os" + }, + { + "text": "Install XCode via the App Store", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os" + }, + { + "text": "Install Additional Dependencies", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-dependencies" + }, + { + "text": "Install the following additional dependencies using the terminal.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-dependencies" + }, + { + "text": "If you are using Ubuntu-20.04, run:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-dependencies" + }, + { + "text": "Install Additional Rust Components", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-rust-components" + }, + { + "text": "Install additional Rust components:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-rust-components" + }, + { + "text": "(Optional) Skip this step if it fails.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-additional-rust-components" + }, + { + "text": "Install jq", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-jq" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-jq" + }, + { + "text": " is an optional, but useful addition to our needed software. ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-jq" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-jq" + }, + { + "text": " can provide a more readable format of JSON output in the terminal, which helps us more quickly digest the data response output by the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "install-jq" + }, + { + "text": "Linux:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "linux-2" + }, + { + "text": "MacOS:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "Download the appropriate file from ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "this link.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "this link.", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "In your terminal, make the file executable by changing into the directory where the file downloaded and executing:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "Execute the file.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-2" + }, + { + "text": "Windows:", + "tagName": "h5", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows-2" + }, + { + "text": "Download and execute the appropriate file from ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows-2" + }, + { + "text": "this link.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows-2" + }, + { + "text": "this link.", + "tagName": "a", + "path": "komodo-defi-framework/setup", + "closestElementReference": "windows-2" + }, + { + "text": "Build Komodo DeFi Framework", + "tagName": "h3", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "Clone the Komodo DeFi Framework repository:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "For development, please use the ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "dev", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": " branch ( ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "git clone https://github.com/KomodoPlatform/komodo-defi-framework --branch dev", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": " ) instead of a specific release branch.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "Compile the source code:", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "build-komodo-de-fi-framework" + }, + { + "text": "MacOS", + "tagName": "h4", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "If the above command results in an error, use the following command instead.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "Alternatively, create a permanent link called ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "libcrypto", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": " to ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "/usr/local/lib", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "If everything installed successfully, a response that is similar to the following should appear.", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "The Komodo DeFi Framework API executable is now built and available here: ", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + }, + { + "text": "~/komodo-defi-framework/target/debug/mm2", + "tagName": "p", + "path": "komodo-defi-framework/setup", + "closestElementReference": "mac-os-3" + } + ], + "komodo-defi-framework/tutorials/additional-information": [ + { + "text": "Additional Notes", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "additional-notes" + }, + { + "text": "A Back End for Front-End Implementations", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "The Komodo DeFi Framework API is built to have a core component that can serve many front-end graphical-user interfaces (GUIs).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "Various front-end GUIs exist in our ecosystem, some of them built by the volunteer efforts of our community members.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "This also allows developers and entrepreneurs the freedom to create your own front-end implementation for your own purposes. For example, you can create your own front-end implementation that acts on the same atomic-swap network as other communities. Or, you could make a front-end implementation for your own private network.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "The documentation here only concerns the core component, the Komodo DeFi Framework API. This component is typically accessed via an API or a terminal interface.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "Documentation for GUIs based on Komodo DeFi Framework API are not yet available.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "a-back-end-for-front-end-implementations" + }, + { + "text": "New Features of Komodo DeFi Framework API (Desktop)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-features-of-komodo-de-fi-framework-api-desktop" + }, + { + "text": "Users who worked with the previous version of the Komodo DeFi Framework API software, MarketMaker 1.0 (MM1), will note several differences with the new release.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-features-of-komodo-de-fi-framework-api-desktop" + }, + { + "text": "New Off-Chain Technology", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-off-chain-technology" + }, + { + "text": "MM1 used nanomsg technology for its off-chain network layer (e.g. orderbook propagation, ordermatching, client traffic routing, and other technologies that are not active on the blockchain itself).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-off-chain-technology" + }, + { + "text": "Komodo DeFi Framework API replaced nanomsg with Rust TCP implementation and also uses ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-off-chain-technology" + }, + { + "text": "libtorrent", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-off-chain-technology" + }, + { + "text": " as a torrent/DHT network system for the off-chain network layer. This p2p software is widely used and highly reliable, granting a greater development experience.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "new-off-chain-technology" + }, + { + "text": "Rust Implementation", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "rust-implementation" + }, + { + "text": "MM1 was based on ANSI C.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "rust-implementation" + }, + { + "text": "For Komodo DeFi Framework API we ported the system to Rust, utilizing the cargo ecosystem. Internal benchmarks prove this to be more efficient. Furthermore, the Rust code base supports mobile devices, including Android & iOS. This is a key benefit, as we expect mobile devices to be a key component of Komodo DeFi Framework API adoption.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "rust-implementation" + }, + { + "text": "Multi-Threading and Other Multi-Tasking Improvements", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "multi-threading-and-other-multi-tasking-improvements" + }, + { + "text": "MM1 had limited multi-tasking capabilities. Also, the bob-side technology was not reliable when using MM1 in lite mode (SPV), wherein blockchain syncing is not required for end-users.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "multi-threading-and-other-multi-tasking-improvements" + }, + { + "text": "Komodo DeFi Framework API has multi-threading. This allows it to reliably manage multiple concurrent requests.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "multi-threading-and-other-multi-tasking-improvements" + }, + { + "text": "Komodo DeFi Framework API for Mobile (New!)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Komodo is pleased to announce that Komodo DeFi Framework API is preparing for release on compatible Android and iOS devices. The software is currently undergoing quality tests and external reviews before publication.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Notable aspects of the Mobile Komodo DeFi Framework software include:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Optimization for low-data usage and CPU consumption", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Low storage requirements (less than 50 MB)", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Integrates seamlessly with the desktop Komodo DeFi Framework API software", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Through the Komodo API, mobile-device developers can integrate Komodo DeFi Framework API for Mobile into other software packages.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Please reach out to our team on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Discord", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": " to be involved with the software release.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Discord", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "komodo-de-fi-framework-api-for-mobile-new" + }, + { + "text": "Add Your Coin to the Komodo DeFi Framework API", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "All coins that are built on the BTC and ETH core software can be added to the Komodo DeFi Framework API quickly and simply. Coins built on other software frameworks may be able to be added as well, depending on specific details. Specifically, a coin must support functionality that is similar to the \"CheckLockTimeVerify\" of the Bitcoin protocol, wherein a utxo can be locked for a specific amount of time and then released in a manner determined by the developer. For more information, please reach out to our team on Discord.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "To add your BTC or ETH-based coin to Komodo DeFi Framework API, first follow the linked checklist below:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "Link to checklist for adding coin to Komodo DeFi Framework API", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "Link to checklist for adding coin to Komodo DeFi Framework API", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "Upon completing the checklist, please submit your proposed coin configuration files to the same repository with a pull request.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "add-your-coin-to-the-komodo-de-fi-framework-api" + }, + { + "text": "Features Carried From MM1", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "features-carried-from-mm-1" + }, + { + "text": "SPV-based Trading", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "spv-based-trading" + }, + { + "text": "Komodo DeFi Framework holds support for ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "spv-based-trading" + }, + { + "text": "SPV Electrum-based", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "spv-based-trading" + }, + { + "text": " coins. This feature allows a user to trade with their coins without downloading their coins' blockchain data. This feature is available for all Bitcoin-protocol based coins running native-coin daemons, Ethereum, and Ethereum-based ERC20 tokens. The Komodo DeFi Framework API is built to handle the nature of the SPV requirements, providing additional functionality to developers.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "spv-based-trading" + }, + { + "text": "SPV Electrum-based", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "spv-based-trading" + }, + { + "text": "Liquidity Multiplication", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "liquidity-multiplication" + }, + { + "text": "Komodo DeFi Framework also enables a feature known as Liquidity Multiplication, a protocol that allows the same funds to be used in multiple requests on Komodo DeFi Framework \"orderbooks.\" The first request to fill completes the trade, and all outstanding requests are immediately cancelled. This feature is available to the user when providing liquidity to the exchange (called a \"Bob-side\" trade).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "liquidity-multiplication" + }, + { + "text": "Liquidity Multiplication therefore allows an initial amount of funding to create an exponentially higher amount of liquidity on the exchange. This also provides a special advantage for traders that like to wait for below-market dumps. While this feature is something that any other exchange could implement, few do.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "liquidity-multiplication" + }, + { + "text": "On Komodo DeFi Framework, all orderbook entries are 100% backed by real funds, as opposed to a centralized exchange’s vouchers, which may be one reason why Komodo DeFi Framework can more readily offer this feature.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/additional-information", + "closestElementReference": "liquidity-multiplication" + } + ], + "komodo-defi-framework/tutorials/api-docker-telegram": [ + { + "text": "How To Become a Liquidity Provider for Komodo DeFi Framework with Telegram Notifications using Docker", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "how-to-become-a-liquidity-provider-for-komodo-de-fi-framework-with-telegram-notifications-using-docker" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "installation" + }, + { + "text": "Clone the repository", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "clone-the-repository" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "clone-the-repository" + }, + { + "text": "Build Docker Image", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "build-docker-image" + }, + { + "text": "Commands:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "build-docker-image" + }, + { + "text": "Setup Telegram Bot", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Open your Telegram App.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Search for the bot named ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "@BotFather", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": " and start a chat with it", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Send the message ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "/help", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": " to receive a list of commands available", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Send the message ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "/newbot", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": " to create a new bot", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Send a message containing the required name of the bot. It must end in ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "bot", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": ". Like this, for example: TetrisBot or tetris_bot.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Once the bot is created, take note of the username (hereby referred as ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "BOT_USERNAME", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": ") and bot token (hereby referred as ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "BOT_TOKEN", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": ") from the message sent to you.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Start a chat with the new bot created", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Go to the url: ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "https://api.telegram.org/bot/getUpdates", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": ". Replace the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": " with the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "BOT_TOKEN", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "In the response, look for the key: ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "chat", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "the id in the above json is hereby referred as ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "BOT_CHATID", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Now we have all the details needed to start our Marketmaker with Telegram bot notifications enabled!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "setup-telegram-bot" + }, + { + "text": "Usage", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "usage" + }, + { + "text": "Start Container With Telegram Bot Notification", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": "Replace the values ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": "BOT_TOKEN='989XXXXXX:AAXXXXXXXXXXXXeso' -e BOT_CHATID='93XXXXX6' -e BOT_USERNAME='mymarketmakerbot'", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": " with the ones belonging to your bot", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": "A message will be received on your bot like this:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-container-with-telegram-bot-notification" + }, + { + "text": "Start Atomic DEX API Marketmaker", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-atomic-dex-api-marketmaker" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-atomic-dex-api-marketmaker" + }, + { + "text": "This outputs the PID within the docker container, the passphrase & the rpc_password that is used with the packaged scripts.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "start-atomic-dex-api-marketmaker" + }, + { + "text": "Connect to RICK & MORTY Coin Networks", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "connect-to-rick-and-morty-coin-networks" + }, + { + "text": "Commands:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "connect-to-rick-and-morty-coin-networks" + }, + { + "text": "The helpful telegram bot sends this notification for this demo:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "connect-to-rick-and-morty-coin-networks" + }, + { + "text": "View RICK/MORTY Orderbook", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "view-rick-morty-orderbook" + }, + { + "text": "Command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "view-rick-morty-orderbook" + }, + { + "text": "Which our bot helpfully relays to us!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "view-rick-morty-orderbook" + }, + { + "text": "Now that we can see the orderbooks are in a simple JSON schema, it is trivial to create a rudimentary GUI application.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-docker-telegram", + "closestElementReference": "view-rick-morty-orderbook" + } + ], + "komodo-defi-framework/tutorials/api-metrics": [ + { + "text": "Komodo DeFi Framework Metrics", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "The Komodo DeFi Framework collects data metrics that allow interested users to view a history of events of an Komodo DeFi Framework API session, such as incoming and outgoing traffic.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "The metrics can be:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "Recorded to a log file at a specified frequency", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "Requested using Komodo DeFi Framework API in JSON format", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "Visualized using Prometheus and Grafana", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "komodo-de-fi-framework-metrics" + }, + { + "text": "Setting Up Log Recording", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "By default, collected metrics are recorded to a log file every five minutes, but this value can be defined with the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "metrics", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": " parameter in a user's ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "MM2.json file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "MM2.json file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "To disable the collection of metrics, set the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "metrics", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": " parameter to 0.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "setting-up-log-recording" + }, + { + "text": "Requesting Metrics Manually", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "requesting-metrics-manually" + }, + { + "text": "Execute the following command to request a metrics snapshot.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "requesting-metrics-manually" + }, + { + "text": "Prometheus Integration", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Komodo DeFi Framework API 2.0 supports integration with ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ". This software allows users to setup automated scraping of metrics at regular intervals and enables sophisticated queries on the stored ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "timeseries", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " data. It also allows users to configure an elegant dashboard using built-in ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "graphs,", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " or to export data for graphical processing using ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Grafana", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Prometheus", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "timeseries", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "graphs,", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Grafana", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Prometheus scrapes metrics using an HTTP pull model. To provide Prometheus with the ability to scrape the metrics at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "localhost:9001", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ", you need to add the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "prometheusport", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " parameter to your ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "MM2.json file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "localhost:9001", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "MM2.json file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "You can also define your username and password for Prometheus to enforce basic authorization security with the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "prometheus_credentials", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " in your ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "MM2.json file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ". Note that this additional argument is NOT necessary.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "MM2.json file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "PROM_USERNAME", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "PROM_PASSWORD", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": " with your actual Prometheus username and password. Make sure your username and password are separated by ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus-integration" + }, + { + "text": "Configuring Prometheus to monitor the Komodo DeFi Framework API", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "The following basic Prometheus configuration file, named ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "prometheus.yml", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": ", can simplify the process of connecting Prometheus to the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "PROM_USERNAME", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "PROM_PASSWORD", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": " with your actual Prometheus username and password.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "To learn more about creating a Prometheus configuration file, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "read this documentation.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "read this documentation.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "configuring-prometheus-to-monitor-the-komodo-de-fi-framework-api" + }, + { + "text": "Starting Prometheus and Grafana", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "A simple way to initiate Prometheus and Grafana is to have the standard Prometheus and Grafana ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "docker containers", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": " run together using ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "docker-compose", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "docker containers", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "Name the following compose file as ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "docker-compose.yml", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "Use the following command to start both containers.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "starting-prometheus-and-grafana" + }, + { + "text": "Using the graphing interface", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "using-the-graphing-interface" + }, + { + "text": "Prometheus", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "Once the docker containers are up and running, navigate to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "http://localhost:9090/graph", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": " and use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "Graph", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": " tab to use Prometheus's built-in graph expressions.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "http://localhost:9090/graph", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "To visualize one of the available metrics, open the metric explorer (next to the execute button), select a metric and then click execute.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "More graphs can be added to the same page using the \"Add Panel\" button available.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "prometheus" + }, + { + "text": "Grafana", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Grafana can access data scraped by Prometheus and it can analyze, transform and display it in a variety of ways. For more information see the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Prometheus guide.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Prometheus guide.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "To use Grafana, navigate to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:3000", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " and log in using the default credentials: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "admin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " / ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "admin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": ". When offered to set a new password, do so and secure it in an encrypted password manager like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "KeePassXC", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:3000", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "KeePassXC", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Next we need to add Prometheus as a data source. Click on the cog icon in the sidebar to open the configuration panel.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Click the \"Add data source\" button, and select ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " from the menu. Set the URL to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:9090", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": ", leave other fields as default, and click the \"Test and save\" button at the bottom of the form.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Next, navigate to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:3000/dashboards", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " and click on the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "New Dashboard", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " button", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:3000/dashboards", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Next, click on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Add a new panel", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "In the next screen, select ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Prometheus", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " as the provider from the drop down menu in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Query", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " tab.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Click the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Metrics", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " menu and select one of the available options. These should be the same ones available directly in the Graphs tab of Prometheus: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:9090/graph", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "http://localhost:9090/graph", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Optionally, you can tweak the query options (shown in the image below).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Once complete, click on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Run queries", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " to see the data displayed on the graph. If you like, you can also customise the graph, by adding a title, changing the colors, or using a different graph type. Click ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Apply", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": " in the top right corner once complete.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + }, + { + "text": "Add any additional panels as desired, and save them to your dashboard.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-metrics", + "closestElementReference": "grafana" + } + ], + "komodo-defi-framework/tutorials/api-walkthrough": [ + { + "text": "Komodo DeFi Framework API Walkthrough", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "komodo-de-fi-framework-api-walkthrough" + }, + { + "text": "Now that you have the Komodo DeFi Framework API ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "komodo-de-fi-framework-api-walkthrough" + }, + { + "text": "installed", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "komodo-de-fi-framework-api-walkthrough" + }, + { + "text": " you are ready for your first atomic swap!\nSince we're testing Komodo DeFi Framework API as a back end, we're going to be doing a few things that a normal user using a GUI will not be expected to do.\nLet's open up the terminal and get started.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "komodo-de-fi-framework-api-walkthrough" + }, + { + "text": "installed", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "komodo-de-fi-framework-api-walkthrough" + }, + { + "text": "Setting Up the Coin List", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "In the Komodo ecosystem we use two blockchain coins, DOC and MARTY, for testing purposes. These coins are freely distributed and have no blockchain scarcity, so don't treat these coins as having any real value.\nIf you lose them or destroy them, there's no need to stress. You can always grab more from our faucet in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "KomodoPlatform Discord server", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": ".\nLet's set up a file in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": " directory to import the settings for these test coins. Make a file called ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": " and place the following text into it:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "KomodoPlatform Discord server", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "Save this file. Komodo DeFi Framework API will search for it automatically on launch.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": " file in ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this linked repository", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": " contains the standard coin configuration file used in GUI software.\nYou can download and use ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": " if you want to activate other coins.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this linked repository", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "Servers used for light mode activation are listed within ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": ",\nand you can find many coin activation request body json examples at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "https://stats.kmd.io/atomicdex/activation_commands/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "this file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "https://stats.kmd.io/atomicdex/activation_commands/", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "setting-up-the-coin-list" + }, + { + "text": "Launching the Komodo DeFi Framework API", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": "We also need to create an MM2.json file in the same directory as the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": " file. We'll use a minimal configuration for this example (check out the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": "configure mm2 guide", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": " for more information about additional configuration parameters).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": "configure mm2 guide", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "launching-the-komodo-de-fi-framework-api" + }, + { + "text": "MM2.json Minimal Configuration", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "| Parameter | Type | Description |\n| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| gui | string | Information to identify which app, tool or product is using the API, e.g. ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "KomodoWallet iOS 1.0.1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ". Helps developers identify if an issue is related to specific builds or operating systems etc. |\n| netid | integer | Nework ID number, telling the Komodo DeFi Framework API which network to join. 8762 is the current main network, though alternative netids can be used for testing or \"private\" trades as long as seed nodes exist to support it. |\n| passphrase | string | Your passphrase; this is the source of each of your coins private keys. KEEP IT SAFE! |\n| rpc_password | string | For RPC requests that need authentication, this will need to match the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "userpass", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": " value in the request body. |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Unless you include the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "allow_weak_password", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": " paramater and set it to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ", your ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "rpc_password", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Can't have 3 of the same characters in a row,", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Must be between 8-32 characters in length", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Must contain at least one each of the following: numeric, uppercase, lowercase, special character (e.g. !#$*).", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Must not contain the word \"password\", or the chars ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "<", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ">", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ", or ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "&", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "The MM2.json configuration commands can also be supplied at runtime, as below:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "YOUR_PASSPHRASE_HERE", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "YOUR_PASSWORD_HERE", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": " with your actual passphrase and password, and then execute the command in the terminal.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "You should see output similar to the following:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "If you see something similar, the Komodo DeFi Framework API is up and running!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "When using the Komodo DeFi Framework API on a VPS without accompanying tools such as ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "tmux", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "screen", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ", it is recommended to use ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "nohup", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": ". This will ensure that the Komodo DeFi Framework API instance is not shutdown when the user logs out.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "nohup", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "mm-2-json-minimal-configuration" + }, + { + "text": "Setting ", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "userpass", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": " Environment Variable", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "Create a new file in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": " folder called ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "userpass", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": ", then enter the following text using the same ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "rpc_password", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": " as is in your MM2.json file or runtime configuration string:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "Save it, and then in the terminal execute:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "Test it by executing:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "You should now see your userpass printed to the console.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "userpass", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": " environment variable will remain in memory until the session is\nclosed. When you open up a new session later, you'll need to create the\n", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "userpass", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": " environment variable again. Additional environment variables for\nthe Komodo DeFi Framework API can be found in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "configure mm2\nguide", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "configure mm2\nguide", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "environment-variable" + }, + { + "text": "Connect to the Selected Coin Networks", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "While we did set up the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": " file for wach coin's configuration properties earlier, the Komodo DeFi Framework API doesn't to connect to their blockchain networks until we send a ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "coin activation request", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "coin activation request", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "To activate DOC and MARTY, send the following requests to the Komodo DeFi Framework API:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "You are now connected to the MARTY test-blockchain network!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "Let's connect to DOC (note it uses a different Electrum port).", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "You are now connected to the DOC test-blockchain network!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "connect-to-the-selected-coin-networks" + }, + { + "text": "Get MARTY from the Faucet", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "Note that in the examples the address, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "RLgAgBFHFbG2ma9MDTHyKL5vovftMepBkE", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": ", is present in both returned responses. You will see a different address in your returned responses - your address is unique to to your ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "passphrase", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "To get free DOC and MARTY coins, use the Flux-Bot faucet in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "KomodoPlatform Discord", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": " with the slash command below:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "KomodoPlatform Discord", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "In a minute or so a few MARTY coins will arrive in your address. You can ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "check your balance", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": " with the request below:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "check your balance", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "Now you are ready to trade!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "get-marty-from-the-faucet" + }, + { + "text": "The Komodo DeFi Framework Orderbook", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Komodo DeFi Framework uses a decentralized, peer-to-peer orderbook empowering users to trade without having to rely on a centralized service.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "This avoids some serious problems which can affect centralized exchanges, such as:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Security risks: There's always a chance ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "hackers", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "founders", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " or other ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "bad actors", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " could steal a users assets or ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "personal information", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " because everything is stored on the exchange's servers.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "hackers", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "founders", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "bad actors", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "personal information", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Lack of transparency: It's difficult to know if the exchange is playing fair, which can lead to ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "market manipulation", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " or insider trading.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "market manipulation", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Limited user control: Users don't have complete control over their funds, as they are held by the exchange. Remember: ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Not your keys, not your coins!", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Not your keys, not your coins!", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Limited asset offerings: Centralized exchanges may not have as diverse a range of cryptocurrencies available for trading.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "High exit fees: Users might have to pay a lot of money just to withdraw their funds. If some cases, ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "withdrawals are suspended", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " altogether!", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "withdrawals are suspended", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "To see the orders listed on the Komodo DeFi Framework orderbook, use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "orderbook", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " method:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "orderbook", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "The response below shows a list of users willing to send DOC in exchange for MARTY.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Notice that the output is not easily readable in the terminal. This is where\nwe start using ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": ". You may remember that we installed software called ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "\nduring the setup process. ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " is optional, but it is recommended as it makes\nreading the output in the terminal easier. To use ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": ", simply add the\nfollowing to the end of any command: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "| jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Try again this time adding ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " | jq", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " to the end of the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "bash", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " example below:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "That's much easier to read. We can easily see someone with the address ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "RJTYiYeJ8eVvJ53n2YbrVmxWNNMVZjDGLh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " is willing to swap DOC for MARTY.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "They are asking ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "2", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " MARTY for every ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " DOC and have a total of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "10855.85028615", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": " available to trade.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "the-komodo-de-fi-framework-orderbook" + }, + { + "text": "Initiate a Swap", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Let's create a DOC/MARTY ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "buy", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": " order", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "buy", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "If you see order data in the response, the order was successfully submitted to the network.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Your swap is not yet started, however.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "From here, everything is automated.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "If your order is matched you will see something similar in terminal output as the steps of the swap are completed:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "When you see that last line, you know that your swap went through! Let's check by checking our DOC ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "balance", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": " again.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "balance", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Congratulations! You have successfully completed your first atomic swap!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Once you are finished using the Komodo DeFi Framework API, you can exit using the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "stop", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": " method:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "stop", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Don't forget to reach out to us ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "on Discord", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Twitter", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": " tell us about your experience and ask any questions you may have!", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "on Discord", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + }, + { + "text": "Twitter", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/api-walkthrough", + "closestElementReference": "initiate-a-swap" + } + ], + "komodo-defi-framework/tutorials/coins-file-update": [ + { + "text": "How to update the coins file to work with the latest Komodo DeFi Framework", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "how-to-update-the-coins-file-to-work-with-the-latest-komodo-de-fi-framework" + }, + { + "text": "Instructions", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Compile the latest ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "mm2", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " binary following ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "these instructions", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "these instructions", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Place the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " file in the old format in the same directory as the compiled ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "mm2", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " binary", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Open a terminal and navigate to the directory with both the files", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Run the following command ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "./mm2 update_config coins coins_new", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "mm2", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " can accept any valid paths as the arguments for the source and destination files", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Output similar to the following will be shown. The \"Success\" message indicates that the conversion was successful", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "You will find a new file named ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins_new", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " in the same directory with the new format expected by Komodo DeFi Framework", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Rename the file named ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins_old", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " and then ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins_new", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " to ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "mm2", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " will use the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "coins", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": " file in the new format the next time it is launched", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "instructions" + }, + { + "text": "Examples", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "examples" + }, + { + "text": "UTXO coin", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "utxo-coin" + }, + { + "text": "Old Format", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "old-format" + }, + { + "text": "New Format", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "new-format" + }, + { + "text": "ERC20 Token", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "erc-20-token" + }, + { + "text": "Old Format", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "old-format-2" + }, + { + "text": "New Format", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/coins-file-update", + "closestElementReference": "new-format-2" + } + ], + "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider": [ + { + "text": "How To Become a Liquidity Provider on Komodo DeFi Framework", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "how-to-become-a-liquidity-provider-on-komodo-de-fi-framework" + }, + { + "text": "The following tutorial introduces the reader to a simple method to become a liquidity provider on the main network of the Komodo DeFi Framework software.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "how-to-become-a-liquidity-provider-on-komodo-de-fi-framework" + }, + { + "text": "Requirements", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "requirements" + }, + { + "text": "Virtual Private Server (Recommended)", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "We recommend that the user ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "have a Virtual Private Server (VPS)", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": " with ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "at least", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": " the following specifications.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "have a Virtual Private Server (VPS)", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "2 vCPU", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "4GB RAM", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "OS: Ubuntu 18.04 (Preferably a clean installation)", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "virtual-private-server-recommended" + }, + { + "text": "Home-Based Connection", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "If the user prefers to use computer hardware at home, instead of a VPS, we recommend that the user have a very strong Internet connection. We also recommend that the user have a competitive hardware setup running on Ubuntu 18.04.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "Internet speed - ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "at least", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": " 1 MBPS", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "RAM - ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "at least", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": " 4 GB", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "Processor - ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "at least", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": " i5 or equivalent", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "home-based-connection" + }, + { + "text": "Get the Komodo DeFi Framework API and Coins Configuration File", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "get-the-komodo-de-fi-framework-api-and-coins-configuration-file" + }, + { + "text": "Step 1: Get the Komodo DeFi Framework API binary", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-get-the-komodo-de-fi-framework-api-binary" + }, + { + "text": "You can get the Komodo DeFi Framework API binary by downloading pre-compiled versions from the official repository or by building from source.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-get-the-komodo-de-fi-framework-api-binary" + }, + { + "text": "Downloading from the Official Repository (Option 1)", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "We will create ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": " directory for compatibility with building from source method.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "You can get the latest release of the Komodo DeFi Framework API binary from the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "komodo-defi-framework/releases", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": " page on Github. Download and extract it to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "komodo-defi-framework/releases", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "For example:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "Then you can proceed to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "download the coins configuration file", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "download the coins configuration file", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "downloading-from-the-official-repository-option-1" + }, + { + "text": "Building from Source (Option 2)", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "building-from-source-option-2" + }, + { + "text": "If you decide to build from source, please follow the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "building-from-source-option-2" + }, + { + "text": "Build Komodo DeFi Framework API from source guide", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "building-from-source-option-2" + }, + { + "text": "Build Komodo DeFi Framework API from source guide", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "building-from-source-option-2" + }, + { + "text": "Step 2: Download the Coins Configuration File", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-download-the-coins-configuration-file" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command" + }, + { + "text": "Running the Komodo DeFi Framework API", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "running-the-komodo-de-fi-framework-api" + }, + { + "text": "Step 1: Download and Edit Scripts to Provide Liquidity for the KMD/LTC Pair", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-download-and-edit-scripts-to-provide-liquidity-for-the-kmd-ltc-pair" + }, + { + "text": "Navigate to the directory: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-download-and-edit-scripts-to-provide-liquidity-for-the-kmd-ltc-pair" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-download-and-edit-scripts-to-provide-liquidity-for-the-kmd-ltc-pair" + }, + { + "text": "Download the scripts used to start and interact with the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-download-and-edit-scripts-to-provide-liquidity-for-the-kmd-ltc-pair" + }, + { + "text": "Copy those scripts to the current directory.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-download-and-edit-scripts-to-provide-liquidity-for-the-kmd-ltc-pair" + }, + { + "text": "Create a Secure Seed Phrase", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "The user must create a seed phrase that will serve as a type of password for accessing all coins in the user's digital wallet.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "Various tools are available in the cryptocurrency community to create a secure seed phrase. One available method is to use the automated procedure that is included in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "Komodo Desktop Wallet", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "Komodo Desktop Wallet", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "Backup these 24 words carefully. They provide access to the coins that are stored in the addresses created by the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "To learn more about creating secure phrases, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "read this linked content on the Bitcoin wiki.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "read this linked content on the Bitcoin wiki.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-a-secure-seed-phrase" + }, + { + "text": "Edit the start.sh File", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "We are about to place the seed phrase in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": " file. Failure to properly execute this step can lead to a loss of your funds.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "Open the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": " file in the current directory using the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "nano", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": " text-editor.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "Replace the value ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "REPLACE_TRADING_WALLET_PASSPHRASE", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": " in the file with the seed phrase.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-start-sh-file" + }, + { + "text": "Create an RPC Control User Password", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": "Keep the nano software and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": " file open.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": "Separately, create an additional password for Remote Procedure Call (RPC) access.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": "This should be a simple password that is sufficiently random, has at least eight digits, and is based on numbers and letters.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "create-an-rpc-control-user-password" + }, + { + "text": "Place the User Password into the start.sh File", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "place-the-user-password-into-the-start-sh-file" + }, + { + "text": "Replace the text ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "place-the-user-password-into-the-start-sh-file" + }, + { + "text": "\"RPC_UserP@SSW0RD\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "place-the-user-password-into-the-start-sh-file" + }, + { + "text": " with your RPC user password.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "place-the-user-password-into-the-start-sh-file" + }, + { + "text": "Example", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "The below example shows how to launch the Komodo DeFi Framework API software with a 24-word passphrase. This is provided for demonstration purposes only. You should NOT copy/paste this example. Type this command in manually to your terminal, and MAKE SURE TO CHANGE THE PASSPHRASE TO YOUR OWN.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Failure to properly manage your passphrase can (and likely will) result in lost funds.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Hit ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Ctrl + X", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": " to save and exit.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Observe the bottom of the terminal for any prompts. Hit ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "y", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": " when asked to save. When the file name is shown, hit ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Enter", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": " if the name matches ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "example" + }, + { + "text": "Edit the userpass File", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": "Replace the text ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": "RPC_UserP@SSW0RD", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": " with the same password used in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": " file.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": "We now have basic scripts to use the Komodo DeFi Framework API as a liquidity provider.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "edit-the-userpass-file" + }, + { + "text": "Step 2: Start the Komodo DeFi Framework API", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-start-the-komodo-de-fi-framework-api" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "Starting the Komodo DeFi Framework API in the above manner causes the passphrase to be visible to other programs such as ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "htop", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "To avoid this issue, there is an alternate method that uses a json file to replace the command line parameters", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "To use it:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "Edit the values of the keys ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "\"rpc_password\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "\"passphrase\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": " with the same values used in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": " file. Save and close the file.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "To start the Komodo DeFi Framework API:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-2" + }, + { + "text": "Step 3: Connect to the Coin Networks (KMD & LTC)", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-connect-to-the-coin-networks-kmd-and-ltc" + }, + { + "text": "Open a new terminal and navigate to the directory: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-connect-to-the-coin-networks-kmd-and-ltc" + }, + { + "text": "~/komodo-defi-framework/target/debug", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-connect-to-the-coin-networks-kmd-and-ltc" + }, + { + "text": "Connect to the KMD network", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connect-to-the-kmd-network" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": "Take note of the address.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": "We recommend here that you make sure that the public address above matches the address generated by the same passphrase, when entered into the Komodo wallet or the Verus Desktop wallet.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": "A sample response of the terminal output after the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": "start.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": " file is executed.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response" + }, + { + "text": "Connect to the LTC network", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connect-to-the-ltc-network" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-2" + }, + { + "text": "Again, a best practice here is to ensure that the public address above matches with the address in the Komodo Wallet or Verus Desktop wallets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-2" + }, + { + "text": "Connecting to a Network Other Than KMD or LTC", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "To connect to a coin network other than KMD or LTC, first make sure that the coin's details are present in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " file you downloaded. Also make sure that the file has the property ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "\"mm2\": 1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "Next, create a new file named \"COINNAMEconnect.sh\" and add the following contents; replace the characters ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "<", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": ">", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " and all text between them with values from your ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " file. (For example: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " becomes ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "7771", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": ".)", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "Make the file executable", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "Execute the command ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "./COINNAMEconnect.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": " to instruct your Komodo DeFi Framework API instance to connect to the coin's electrum server.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "connecting-to-a-network-other-than-kmd-or-ltc" + }, + { + "text": "Trading", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "trading" + }, + { + "text": "Step 0: Query the Current Orderbooks", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": "Display the KMD/LTC Orderbook.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": "See this ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": "linked document", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": " for an explanation of the output.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": "linked document", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-0-query-the-current-orderbooks" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-5" + }, + { + "text": "Display the LTC/KMD Orderbook.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-5" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-6" + }, + { + "text": "Step 1: Fund the Address", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-fund-the-address" + }, + { + "text": "In this example, we sell KMD for LTC.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-fund-the-address" + }, + { + "text": "To achieve this, we first fund the KMD address created by the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-fund-the-address" + }, + { + "text": "Use the following command to find the address and check the balance.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-1-fund-the-address" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-3" + }, + { + "text": "Step 2: Place an Order", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-place-an-order" + }, + { + "text": "Execute the following command to sell 2 KMD at the price of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-place-an-order" + }, + { + "text": "1 KMD = 0.013 LTC", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-place-an-order" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-2-place-an-order" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-4" + }, + { + "text": "Step 3: Check the Status of an Order", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-check-the-status-of-an-order" + }, + { + "text": "Check the status of an order by referring to its ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-check-the-status-of-an-order" + }, + { + "text": "uuid", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-check-the-status-of-an-order" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-3-check-the-status-of-an-order" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-8" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-5" + }, + { + "text": "Step 4: Withdrawal of Coins", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": "After someone accepts the order and your trade is finished, the coins received (LTC) and the coins leftover (KMD) can be withdrawn.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": "Execute the following command to withdraw ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": "0.97", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": " KMD to the address ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": "RUFf4de7gZE7sp5vPcxaAsvv6j79ZbQgAu", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "step-4-withdrawal-of-coins" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-9" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": "\"tx_hex\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": " value from the above response and send it to the network using the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": "sendrawtransaction.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": " script.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-6" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-10" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-7" + }, + { + "text": "The above ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-7" + }, + { + "text": "tx_hash", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-7" + }, + { + "text": " can be searched for in an explorer to check the status of the withdraw.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-7" + }, + { + "text": "Miscellaneous", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "miscellaneous" + }, + { + "text": "Stop", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "stop" + }, + { + "text": "To stop the Komodo DeFi Framework API, use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "stop" + }, + { + "text": "stop.sh", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "stop" + }, + { + "text": " script.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "stop" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-11" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-8" + }, + { + "text": "View All the Orders Placed by Our Node", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "view-all-the-orders-placed-by-our-node" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-12" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-9" + }, + { + "text": "Cancel an Order", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "cancel-an-order" + }, + { + "text": "Cancel an order by referring to its ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "cancel-an-order" + }, + { + "text": "uuid", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "cancel-an-order" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "cancel-an-order" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "command-13" + }, + { + "text": "Response", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-become-a-liquidity-provider", + "closestElementReference": "response-10" + } + ], + "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source": [ + { + "text": "How To Compile Komodo DeFi Framework API from Source", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "how-to-compile-komodo-de-fi-framework-api-from-source" + }, + { + "text": "The following tutorial introduces the reader to a simple method to build the Komodo DeFi Framework API from source.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "how-to-compile-komodo-de-fi-framework-api-from-source" + }, + { + "text": "Installing Dependencies", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "installing-dependencies" + }, + { + "text": "Step 1: OS Packages", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "step-1-os-packages" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command" + }, + { + "text": "If you are using Ubuntu 20.04, run:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command" + }, + { + "text": "For rpm-based distributions:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command" + }, + { + "text": "Step 2: Install Rust", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "step-2-install-rust" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "When asked to select an installation type, select the following option: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "2) Customize installation", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Choose default host triple and toolchain, then select minimal profile.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Once the installation is complete, enter ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Logout", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": " and then ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Login", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": " again.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Alternatively, you may execute the following command in each active shell until you reach the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Login", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": " again.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-2" + }, + { + "text": "Step 3: Install Rust components", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "step-3-install-rust-components" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-3" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-4" + }, + { + "text": "Command (Optional, skip this step if it fails)", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-optional-skip-this-step-if-it-fails" + }, + { + "text": "Install the Komodo DeFi Framework API", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "install-the-komodo-de-fi-framework-api" + }, + { + "text": "Step 1: Download source code", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "step-1-download-source-code" + }, + { + "text": "Step 2: Compile Source Code", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "step-2-compile-source-code" + }, + { + "text": "Command", + "tagName": "h5", + "path": "komodo-defi-framework/tutorials/how-to-compile-mm2-from-source", + "closestElementReference": "command-5" + } + ], + "komodo-defi-framework/tutorials": [ + { + "text": "Introduction to Komodo DeFi Framework", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "One of Komodo's blockchain tools is an atomic-swap powered, decentralized exchange (DEX), called Komodo DeFi Framework.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "Komodo DeFi Framework software is entirely separate from the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "komodod", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": " software that powers the rest of Komodo.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "Because Komodo DeFi Framework is built on atomic swaps, developers and users can rely on it to exchange cryptocurrencies at will, and without any middleman involvement. Users of this software maintain full control over the private keys of their assets at all times. This dramatically increases the security of the exchange process.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "This software is capable of facilitating atomic-swap exchanges between approximately 99% of the coins listed on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "coinmarketcap.com", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": ". All coins were listed without charge.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "coinmarketcap.com", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "introduction-to-komodo-de-fi-framework" + }, + { + "text": "Why is Komodo DeFi Framework Special?", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "When it comes to DEX technology, Komodo has a remarkable story.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "In April 2014, Komodo’s lead developer experimented with his first atomic-swap prototypes. By August of 2017, Komodo released version 1.0 of the atomic-swap DEX software, allowing anonymous Internet users to perform over 100,000 atomic swaps via automation. These are but two examples of how Komodo has led the way in atomic-swap DEX technology since the beginning.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "To understand Komodo DeFi Framework, one must first understand what a decentralized exchange is, why it is important, and how atomic swaps come into play.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "This discussion requires a small amount of foundational knowledge. The reader should be generally familiar with blockchain technology and should understand the basic ideas of the Komodo project.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "For a broad overview of Komodo, head to the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "About Komodo Platform section", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": " For a more thorough understanding of general blockchain technology, check out ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "the Delayed Proof of Work section of the Core Technology Discussions.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": " This section gives an overview of how a blockchain works and why it matters.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "About Komodo Platform section", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "the Delayed Proof of Work section of the Core Technology Discussions.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "After reading the above articles, the following discussion should be attainable.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "why-is-komodo-de-fi-framework-special" + }, + { + "text": "Understanding the Most Common Method of Cryptocurrency Exchange", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "understanding-the-most-common-method-of-cryptocurrency-exchange" + }, + { + "text": "In the world of cryptocurrency, the goods we are trading are our digital assets. These can be coins, tokens, or other forms of digital rights and property. By nature, each digital asset is bound to the individual blockchain that secures its transaction history.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "understanding-the-most-common-method-of-cryptocurrency-exchange" + }, + { + "text": "Trading Between Blockchains is a Challenge", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "trading-between-blockchains-is-a-challenge" + }, + { + "text": "So long as a user exchanges these assets within their parent blockchains the normal methods of conducting transactions are sufficient for trading. However, questions arise once the user wants to exchange assets on one blockchain for assets on an entirely separate blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "trading-between-blockchains-is-a-challenge" + }, + { + "text": "Typically, separate blockchains have separate demographics of miners and stakers securing the history. When a user trades value between the two blockchains, by default there is no inter-chain security mechanism that can ensure that the user's trading partner does not cheat, and that technical difficulties do not destroy the user's assets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "trading-between-blockchains-is-a-challenge" + }, + { + "text": "The Centralized Exchange as a Method", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "The simplest solution is to abandon decentralization during this process and trust a third party. This describes a normal \"centralized exchange\" (CEX), such as Coinbase, Kraken, and Binance.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "To conduct an exchange using a CEX the user must entrust their digital assets to the CEX's care during the process. The user sends their digital assets to the CEX, and the CEX then issues the user \"I Owe You\" (IOU) tokens that represent the user's ownership of these assets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "The user is then within a single environment that is controlled by a centralized authority. This grants all the benefits of the old system to the trading process, including greater speed of development and design.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "Throughout this experience the user relies on the security of a centralized third party to ensure that their purchases and sales are conducted honestly and accurately. When the user is finished exchanging, they hand back their IOUs and tell the CEX the address where they would like to export their purchases.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "Once the user receives their digital assets back into an address which they control, they are again truly the \"owner\" of these assets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-centralized-exchange-as-a-method" + }, + { + "text": "Problems with Centralized Exchanges", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "Assuming all goes as intended, a CEX is an efficient and effective tool for trading cryptocurrencies. However, reliable CEX's readily state that this model carries great risk. Many of the highest quality CEX's are looking to change their model to mitigate these dangers.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "The primary concern for a CEX is security. When a user places their assets on a centralized exchange, the private keys to these assets are held in a database that, by nature, must have some kind of connection to the public Internet. As the database must always be available online, an attacker can penetrate an individual user's account and gain control over the IOUs even when the user is offline. The attacker can then trade these IOUs at malicious prices into an account the attacker controls and withdraw the true assets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "Furthermore, this database holds the assets of thousands of other users. Having a large amount of vulnerable funds on the Internet is an additional incentive for attackers. ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "As reported by IG Group studies,", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": " from 2017 to 2018, nearly 1 billion US dollar's worth of digital assets were stolen from major exchanges around the world.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "As reported by IG Group studies,", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "A CEX has several challenges to consider as a result of this danger. From a legal perspective, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "the infamous Mt. Gox case", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": " illustrates how users may attempt to hold the CEX liable in the event of a theft. A CEX may struggle to find an insurance provider that will protect them. Also, compared to fiat currency, government authorities can do little to assist in recovering stolen funds.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "the infamous Mt. Gox case", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "problems-with-centralized-exchanges" + }, + { + "text": "Pros and Cons of the Centralized Exchange", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": "| Perspective | Pros | Cons |\n| -------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| User | The IOU exchange process is high-speed, simple, and often has a pleasant interface | Compromising the user's individual account is achievable for a determined hacker, and there are effectively no methods to recover funds stolen from a CEX |\n| User | Because the CEX model has many users, a CEX is more likely to achieve high liquidity | The high user population motivates sophisticated attackers to compromise the entire site |\n| User | A large CEX can handle the complexities of holding and using cryptocurrencies | Once a user gives up control over their funds to the CEX, the user can only trust that the funds will be returned |\n| Exchange Owner | Without decentralization, business development is often faster | In holding thousands of user's personal funds, the exchange owners assume an enormous amount of liability |\n| Exchange Owner | The automated aspect of cryptocurrency allows for fast profits through small fees | The owner must be wary of thieves even among their own employees |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": "In light of these concerns, many reputable and established CEX's are turning to decentralized technologies. For example, Binance, one of the most popular CEX's on the Internet, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": "is moving swiftly into DEX technology", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": " to enhance both security and functionality for their users.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": "is moving swiftly into DEX technology", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "pros-and-cons-of-the-centralized-exchange" + }, + { + "text": "A Decentralized Exchange Can Bring Greater Safety", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "a-decentralized-exchange-can-bring-greater-safety" + }, + { + "text": "To understand why a CEX may wish to implement decentralized technologies, one must first understand how a typical decentralized exchange (DEX) works. There are many types of DEXs, each having a unique technical structure. Perhaps the most popular DEX format is a decentralized gateway.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "a-decentralized-exchange-can-bring-greater-safety" + }, + { + "text": "Types of Decentralized Exchanges", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "| Type | Summary | Examples |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------- |\n| Decentralized Gateway | A decentralized network of gateway keepers hold user funds in escrow and issue IOUs for trading | InstantDEX, Bitshares, Binance DEX |\n| On-Chain Token Exchange | Tokens created on the parent blockchain are traded within the consensus rules; by adding gateway nodes, this can also extend to become a decentralized gateway | EtherDelta, 0x |\n| Non-Custodial Exchange | A centralized website arranges for a moderately secure, but non-decentralized trade between liquidity providers and purchasers; there is no order book and the exchange's control over user funds is limited | ShapeShift, Changelly |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "A decentralized gateway can be thought of as a cryptocurrency holding station that is owned and controlled by several different parties. The gateway performs two functions: it holds the assets that users send to it, and it issues IOUs.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "The IOUs issued to the user do not derive from a centralized database. Rather, they are managed through a blockchain. The user maintains control over the private keys to their IOUs at all times. While this method is not as secure as having access to the private keys to the true digital assets, the method does provide some protection. Assuming the user knows how to secure their private keys, when the user is offline their IOUs are not vulnerable to attackers. This is one improvement over the CEX model.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "The user trades their IOUs with other users in much the same way as on a CEX. When a user is finished trading, they send their IOUs back to the gateway, and with this transaction they include an external address to which they would like their funds withdrawn.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "Now comes another key difference. The actual assets that the gateway is holding are contained in a special type of blockchain address. It is special because it is owned and controlled not by one person or central authority, but rather by several people or parties working together. This address can collect funds from anywhere and from anyone. However, it can only release funds when several of the address’s owners grant permission. This special type of blockchain address is called a “multi-signature” address.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "Because a multi-signature address requires several different parties to sign the release of funds, the gateway is able to provide an improved measure of security. For an attacker to succeed, they must compromise several different parties, rather than a central authority.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "In many ways, this popular DEX model is an improvement over the CEX model, and this is why many CEX's are expanding into this territory. Users have control over their IOUs, making them responsible for individual attacks, rather than the exchange owners. The risk of an exchange-wide attack is also shared across multiple parties.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "types-of-decentralized-exchanges" + }, + { + "text": "The Decentralized Gateway", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-decentralized-gateway" + }, + { + "text": "| Pros | Cons |\n| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Tokens can be issued for any asset, including both cryptocurrency and fiat | This method requires a wide network of trustworthy and technically proficient business partners |\n| Users maintain ownership over their IOUs at all times, limiting attackers' capabilities | All true assets are still in the ownership of a small group of people, albeit somewhat decentralized, and therefore susceptible to attacks, errors, and corruption |\n| IOUs are on-chain, and therefore buying and selling funds can be performed at high speeds | Maintenance and improvements to the DEX are highly technical, time consuming, and cost prohibitive |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-decentralized-gateway" + }, + { + "text": "For a developer and entrepreneur, the DEX method is more secure than the CEX model, but there remain many difficulties on technical and political levels. The entrepreneur must find trustworthy partners to be co-owners of the multi-signature address. The developer must ensure that their partners' infrastructure and other technical contributions are secure, as a failure by the partners can reflect poorly on the developer and entrepreneur's own brand.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-decentralized-gateway" + }, + { + "text": "Furthermore, from the user's perspective, the primary danger persists in this DEX model. Once the user sends their assets to the gateway, the user loses control and responsibility over their true assets.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "the-decentralized-gateway" + }, + { + "text": "Atomic Swaps are a Significantly Superior Basis for Exchange", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "atomic-swaps-are-a-significantly-superior-basis-for-exchange" + }, + { + "text": "What if there was a way to trade different types of cryptocurrencies without the user ever transferring control until the trade is complete? Could a user keep the private keys to their assets, and only deal directly with their trading partner and not with a third party?", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "atomic-swaps-are-a-significantly-superior-basis-for-exchange" + }, + { + "text": "This is the idea of an atomic swap. It is simply a trade of assets between two users where, assuming both behave honestly, ownership over the assets is not released until both sides are secure in receiving a fair outcome. If one side tries to cheat or makes any kind of mistake, they cannot receive a financial reward from it, and the non-offending side cannot be penalized or lose their funds.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "atomic-swaps-are-a-significantly-superior-basis-for-exchange" + }, + { + "text": "An atomic swap can do everything else that both the DEX and CEX models can do. Atomic swaps can be conducted quickly; users may form networks of high liquidity trading; nearly all types of cryptocurrencies can be exchanged.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "atomic-swaps-are-a-significantly-superior-basis-for-exchange" + }, + { + "text": "However, the nature of an atomic swap is unique in comparison with the opposing models, as an atomic swap does not require third-party intervention. This can provide simplicity for both the user, the entrepreneur, and even the developer. Depending on the application, the cost may also be dramatically cheaper, as far less infrastructure and manpower is required.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "atomic-swaps-are-a-significantly-superior-basis-for-exchange" + }, + { + "text": "Technical Comparisons", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "| Capability | Atomic Swap | Decentralized Gateway | Centralized Exchange |\n| ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |\n| Third party is not required | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Yes:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " The entire exchange happens between two users; no third party is required | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " The exchange relies on a decentralized network of gateway nodes, who must be trusted | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Users depend on a centralized company to maintain and secure their funds |\n| An exchange can be set up by anyone | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Yes:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Requires only two users and an Internet connection | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Requires sufficient technical knowledge, funding, and committed business partners to serve as gateway nodes | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Requires sufficient technical knowledge, funding, and a higher level of business and legal knowledge |\n| Users maintain control over the funds throughout the process | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Yes:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Users maintain control over their funds until the trade is completed, at which point ownership is swapped atomically | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Users relinquish ownership to the gateway nodes, although users do hold private keys to IOUs | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " Once the user sends funds to the CEX, they only own their funds in theory until the funds are returned |\n| User funds remain distributed and decentralized throughout process | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Yes:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " As users maintain ownership over their funds at all times, all funds in the exchange process are never in a central location | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " User funds are held in a collection of multi-signature addresses that are maintained by a small group of people | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "No:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": " User funds are held in a centralized database, managed by company employees |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "This is probably enough to get the basic idea. If the reader desires a more thorough understanding of the atomic swap process, read the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Komodo DeFi Framework and Atomic Swaps section of the Core Technology Disucssions.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Komodo DeFi Framework and Atomic Swaps section of the Core Technology Disucssions.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "The underlying ideas of atomic swaps were invented by Tier Nolan in 2013. He posted his ideas on an online community forum where Komodo's lead developer and primary visionary, JL777, or \"James\" for short, was also exploring blockchain technology. Here’s where Komodo enters the picture.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "technical-comparisons" + }, + { + "text": "Komodo's Leadership in Atomic-Swap Technology", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "Upon reading Nolan’s discussion, James began experimenting. In April 2014 he wrote his first experimental software for allowing anonymous users on the Internet to conduct on-chain atomic swaps between two assets on the NXT blockchain.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "In September 2015, James performed an experimental atomic swap between Bitcoin and NXT. Like all Bitcoin-based atomic swaps performed during this time period, James's atomic swap could not be considered secure as Bitcoin software lacked a feature called \"Check Lock Time Verify.\" This feature was added in November 2015, and James performed a secure atomic swap shortly thereafter.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "At this time, James also began the creation of his current endeavor, the Komodo ecosystem. Additional team members were hired, money was raised, and large-scale software and company development began.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "From its foundation, the Komodo ecosystem is designed to facilitate blockchain interoperability and scalability, and our atomic-swap software plays a key role. In August 2017, Komodo released version 1.0 of the first atomic-swap based DEX to the public. Releasing this entirely new DEX software to the masses was an endeavor many years in the making, and countless volunteer developers and other dreamers contributed.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "Upon release of Komodo’s DEX 1.0, hundreds of members of the Komodo open-source community collectively performed over 100,000 atomic swaps. It was the first time in history that users with no coding knowledge could trade assets without either a third-party acting as an arbiter, or even without any public knowledge of who was trading with whom.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "Another point to mention is that while Komodo DeFi Framework is built upon atomic swaps, other software in the Komodo ecosystem is able to perform the rest of the functionality necessary to run other types of decentralized exchanges. As all Komodo software is natively integrated, this provides the Komodo entrepreneur with perhaps the widest range of DEX software packages in existence.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodos-leadership-in-atomic-swap-technology" + }, + { + "text": "Capabilities of Komodo Software", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "capabilities-of-komodo-software" + }, + { + "text": "| Atomic Swaps | Decentralized Gateway | On-Chain Token Exchange | Cross-Chain Asset Transfers | ... and more! |\n| ------------ | --------------------- | ----------------------- | --------------------------- | ------------- |\n| Check! | Check! | Check! | Check! | Check! |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "capabilities-of-komodo-software" + }, + { + "text": "Today, Komodo developers took what they learned from version 1.0 and rewrote the code from the ground up to enhance essentially all aspects of the user experience. This is the Komodo DeFi Framework 2.0 software.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "capabilities-of-komodo-software" + }, + { + "text": "Recently, yet again Komodo forged into new territory with atomic swaps. In February of 2019, the Komodo team performed the first mobile-based atomic swap. The mobile version of Komodo DeFi Framework is available for Android and iOS devices, and the software interfaces seamlessly with our desktop software.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "capabilities-of-komodo-software" + }, + { + "text": "While the code behind Komodo's technology is complex, the good news is, the code takes care of itself. A developer and entrepreneur building on Komodo can simply fire up the software and access its functionalities through the API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "capabilities-of-komodo-software" + }, + { + "text": "Komodo DeFi Framework Software is an Industry-Wide Invitation", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodo-de-fi-framework-software-is-an-industry-wide-invitation" + }, + { + "text": "Komodo DeFi Framework is open source, meaning that we do not keep the software's source code private. Also, the Komodo team is creating a network that is open to other financially motivated businesses and organizations seeking profit in the cryptocurrency-exchange industry.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodo-de-fi-framework-software-is-an-industry-wide-invitation" + }, + { + "text": "Many opportunities are available for cryptocurrency-exchange entrepreneurs to build their own audiences and businesses using Komodo software. Entrepreneurs can create their own market places on the main Komodo network for trading, or they can create their own private and public networks. Developers can use Komodo's back-end software API to feature atomic-swap DEX functionality in their existing or upcoming software innovations, including mobile software. Enterprise and other large-scale companies can reach out to Komodo for integration with Komodo technology, or even for consulting services.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodo-de-fi-framework-software-is-an-industry-wide-invitation" + }, + { + "text": "Please reach out to the Komodo team for further information.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodo-de-fi-framework-software-is-an-industry-wide-invitation" + }, + { + "text": "Please reach out to the Komodo team for further information.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials", + "closestElementReference": "komodo-de-fi-framework-software-is-an-industry-wide-invitation" + } + ], + "komodo-defi-framework/tutorials/listing-a-new-coin": [ + { + "text": "Prerequisites for a coin to be compatible with Komodo DeFi Framework", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "Before a coin can be listed in Komodo DeFi Framework, it needs to be confirmed for compatibility, and present within the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "Komodo Platform coins repository", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "Komodo Platform coins repository", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "The information below details the requirements for creating a working coins configuration file and submitting a successful pull request to the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "coins repository", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": ". Please contact our support team in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "#dev-support", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": " channel on the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "Komodo Platorm Discord", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": " if you have any questions or need assistance with performing a ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "test swap", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "coins repository", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "Komodo Platorm Discord", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "test swap", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "prerequisites-for-a-coin-to-be-compatible-with-komodo-de-fi-framework" + }, + { + "text": "1. Coins JSON config (required)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1-coins-json-config-required" + }, + { + "text": "1a. General parameters for all coins", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "Different platforms & protocols vary slightly in what data is required. Review the parameter descriptions and examples below to understand what information is needed to list your coin.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | string | Ticker of the coin/token. If the coin is a token, please use ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "COIN-PROTOCOL", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " as ticker, eg ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "USDC-BEP20", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ". |\n| name | string | This is the value which is expected to be default data directory name for that coin - e.g. if coin's name is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "litecoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " then it's expected data directory on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "~/.litecoin/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " on Linux, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "~/Library/Applications Support/Litecoin/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " on Mac, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "%AppData%\\Litecoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " on Windows. Please keep this key's value in small letters only. |\n| fname | string | The full name of the coin/token. |\n| mm2 | integer | Indicates trading compatibility with Komodo DeFi Framework API. ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " is compatible, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " is not compatible. Non-compatible coins may still be listed as ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "wallet only", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " in Komodo DeFi Framework apps. |\n| required_confirmations | integer | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ". The number of confirmations Komodo DeFi Framework will wait for during the swap. WARNING, this setting affects the security of the atomic swap. 51% attacks (double spending) are a threat and have been succesfully conducted in the past. You can find a collection of coins and the theoretical cost of a 51% attack ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "here", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ". Please be aware that some of the coins supported by Komodo DeFi Framework may be vulnerable to such attacks, so consider using higher confirmation values for them, especially when dealing with large amounts. |\n| requires_notarization | boolean | Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ". For coins protected by ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "dPoW", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " can be set to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " wait for a notarization when sending transactions during a swap. If ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "\"required_confirmations\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " must be set to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "2", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " or higher. |\n| decimals | integer | Defines the number of digits after the decimal point that should be used to display the orderbook amounts, balance, and the value of inputs to be used in the case of order creation or a ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "withdraw", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " transaction. The default value used for a UTXO type coin (Bitcoin Protocol) is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "8", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " and the default value used for a ERC20 Token is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "18", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": ". It is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "very important", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " for this value to be set correctly. For example, if this value was set as ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "9", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " for BTC, a command to withdraw ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "1 BTC", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " tries to withdraw ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "10^9", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " satoshis of Bitcoin, i.e., ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "10 BTC", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " |\n| protocol | string | Contains the coin protocol ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "\"type\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " (UTXO, ETH, etc.) and specific protocol configuration - ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "\"protocol_data\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " object that can have arbitrary format. |\n| orderbook_ticker | string | If set, coins with the same value will share the same orderbook. For example, if ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "BTC-Segwit", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "BTC-BEP20", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " are set with ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "\"orderbook_ticker\":\"BTC\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " the same orderbook is returned for KMD/BTC, KMD/BTC-BEP20 and KMD/BTC-Segwit pairs. |\n| sign_message_prefix | string | Optional, required to allow for message signing in Komodo DeFi Framework API. Can normally be found within a projects github repository [", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "example", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "] and follows a standard format like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "\"Komodo Signed Message:\\n\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "here", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "dPoW", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "example", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1a-general-parameters-for-all-coins" + }, + { + "text": "1b. UTXO coins (BTC, LTC, KMD, ZEC, DASH, DOGE, DGB)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "The following rpc methods should be available.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| name | string | This is the value which is expected to be default data directory name for that coin - e.g. if coin's name is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "litecoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " then it's expected data directory on ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "~/.litecoin/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " on Linux, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "~/Library/Applications Support/Litecoin/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " on Mac, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "%AppData%\\Litecoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " on Windows. Please keep this key's value in small letters only. |\n| rpcport | integer | The coin's default RPC port. It is expected that it doesn't conflict with any existing coin in the coins db. |\n| pubtype | integer | This information can be found in source code of a coin project in files like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/init.cpp", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/base58.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/chainparamsbase.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " if the project is following the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "bitcoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " source code directory/files structure. If unsure, then please have these confirmed by that coin/project's developers to ensure it is correct. |\n| p2shtype | integer | This information can be found in source code of a coin project in files like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/init.cpp", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/base58.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/chainparamsbase.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " if the project is following the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "bitcoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " source code directory/files structure. If unsure, then please have these confirmed by that coin/project's developers to ensure it is correct. |\n| wiftype | integer | This information can be found in source code of a coin project in files like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/init.cpp", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/base58.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/chainparamsbase.h", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " if the project is following the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "bitcoin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " source code directory/files structure. If unsure, then please have these confirmed by that coin/project's developers to ensure it is correct. |\n| txfee | integer | The default transaction fee (in satoshi). Komodo DeFi Framework uses this as the default transaction fee value when making atomic swap transactions. If set to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", Komodo DeFi Framework will use a dynamic fee based on output from ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "estimatesmartfee", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". |\n| overwintered | integer | Must be ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " if Overwinter upgrade was activated for the coin. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". |\n| taddr | integer | Optional. Is only relevant for coins that forked the Zcash protocol and have both transparent addresses and z-addresses. The value to be set for this key can be found from the file ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "src/chainparams.cpp", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " of the coin's source code and it is the first value present in both ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "base58Prefixes[PUBKEY_ADDRESS]", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "base58Prefixes[SCRIPT_ADDRESS]", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". But it has to be converted to decimal from HEX. So if ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "base58Prefixes[PUBKEY_ADDRESS]", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " = ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "{0x1C,0xB8}", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " , the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "taddr", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "0x1C", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " coverted to decimal. As 0x1C in HEX = 28 in decimal, the entry in the json would be ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "\"taddr\" : 28", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " |\n| force_min_relay_fee | boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " for coins with dynamic fees, when a new transaction is generated, Komodo DeFi Framework will check whether the total fee set (", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "sat * tx size", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ") is lower than relay fee and will use the relay fee instead. Defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " |\n| mtp_block_count | integer | Optional. Number of blocks to be used for the calculation of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "median time past", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". Must be greater than ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". Default value is ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "11", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". While this parameter is applicable only in the case of KMD reward calculation for now, it will be used for calculating locktimes to be set for the atomic swap refund transactions. |\n| estimate_fee_mode | string | Sets the fee mode for the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "estimatesmartfee", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " call. Supported values are: ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "ECONOMICAL", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ",", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "CONSERVATIVE", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "UNSET", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". Please note that some coins may not support some of these modes. Makes no effect for coins that do not have the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "estimatesmartfee", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " RPC. |\n| address_format | object | Optional. Overwrites the address format from coins file, if set. A standard ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "AddressFormat", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " object. |\n| isPoS | integer | Optional, defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ". A value of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " indicates the coin uses proof of stake, so transactions created will have the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "nTime", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " field. |\n| segwit | Boolean | If ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": ", Komodo DeFi Framework will use to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "P2SH", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": " segwit addresses. |\n| version_group_id | integer | Optional, used by Zcash (and its forks') transactions. |\n| consensus_branch_id | integer | Optional, used in Zcash (and its forks') transactions' signature hash calculation. |\n| mature_confirmations | integer | Number of blockchain confirmations required for coinbase output to be considered mature (spendable). |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "AddressFormat", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1b-utxo-coins-btc-ltc-kmd-zec-dash-doge-dgb" + }, + { + "text": "UTXO coin example", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "utxo-coin-example" + }, + { + "text": "Antara smartchain example", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "antara-smartchain-example" + }, + { + "text": "1c. EVM-like tokens (ETH/ERC20, MATIC/PLG20, BNB/BEP20)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "The token's contract ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "must", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " have ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "approve", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "transferFrom", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " methods. Additionally, the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "transfer", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "transferFrom", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " methods must return a boolean value (", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "true/false", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": ") indicating whether a transfer was successful. This requirement is actually a part of the ERC20 standard, but many tokens seem to not follow it.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "chain_id", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " - ID of the chain, see ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Chainlist", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Chainlist", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Protocol ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"type\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " field: ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"ETH\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " or ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"ERC20\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Protocol ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"protocol_data\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " field (ERC20 only): ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"platform\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " - ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"ETH\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": ", ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"ETC\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " or other Ethereum forks. ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "\"contract_address\"", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " - ERC20 token ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "checksummed", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " smart contract address.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "checksummed", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "| Parameter | Type | Description |\n| ----------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| chain_id | integer | To find the EVM chain ID, see ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Chainlist", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " |\n| gas_limit | object | Optional, required for tokens only. Defines more precise gas prices for swap or transaction operations. Some tokens are called over proxy contracts which often require more gas, though users may be able to choose higher/lower values than the default where required. See the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Gas Limit Options", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " table below for more information. |\n| protocol.type | string | Platform / protocol - e.g ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " for Ethereum, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "ERC20", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " for ERC20 tokens on the Ethereum network |\n| protocol.protocol_data | object | Required for tokens only. |\n| protocol.protocol_data.platform | string | The parent coin of the token's platform - e.g ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "MATIC", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " for PLG20 tokens |\n| protocol.protocol_data.contract_address | string | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Must be mixed case", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " The identifying hex string for the token's contract. Can be found on sites like ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "EthScan", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "BscScan", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " & ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "PolygonScan", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": " |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Chainlist", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "EthScan", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "BscScan", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "PolygonScan", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1c-evm-like-tokens-eth-erc-20-matic-plg-20-bnb-bep-20" + }, + { + "text": "Gas Limit Options", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "gas-limit-options" + }, + { + "text": "| Parameter | Type | Description |\n| ---------------------- | ------- | ------------------------------------------------------- |\n| eth_send_coins | integer | Gas limit for sending coins. |\n| eth_send_erc20 | integer | Gas limit for sending ERC20 tokens. |\n| eth_payment | integer | Gas limit for swap payment tx with coins. |\n| erc20_payment | integer | Gas limit for swap payment tx with ERC20 tokens. |\n| eth_receiver_spend | integer | Gas limit for swap receiver spend tx with coins. |\n| erc20_receiver_spend | integer | Gas limit for swap receiver spend tx with ERC20 tokens. |\n| eth_sender_refund | integer | Gas limit for swap refund tx with coins. |\n| erc20_sender_refund | integer | Gas limit for swap refund tx with with ERC20 tokens. |\n| eth_max_trade_gas | integer | Gas limit for other operations. |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "gas-limit-options" + }, + { + "text": "ERC20 token example", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "erc-20-token-example" + }, + { + "text": "BEP20 token example", + "tagName": "h3", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "bep-20-token-example" + }, + { + "text": "1d. QRC20 tokens", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1d-qrc-20-tokens" + }, + { + "text": "QTUM & QRC20 tokens are a special case which also support all fields of UTXO specific config.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "1d-qrc-20-tokens" + }, + { + "text": "2. Icon file (required)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "The icon file is required.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "Icon must be a .png format file.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "Dimensions of icon file is at least 128x128 pixels.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "Icon file name MUST be the coin/token ticker in ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "small letters", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": " without protocl suffix - e.g. for KMD or KMD-BEP20, use ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "kmd.png", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "Icon file location is ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "icons_original", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": " folder.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "icons_original", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "2-icon-file-required" + }, + { + "text": "3. Explorer URL (required, excluding tokens)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "Tokens do not need this data, they will use the values for their parent coin.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "Explorer file name must be coin's ticker name in all ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "capital", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": " letters.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "Explorer file name must not have any file extension. It is a file without any ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": " extension.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "It must have a valid JSON array with at least one Explorer URL in it. Multiple explorer URLs are recommended - e.g. ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "[\"https://komodod.com/\",\"https://kmd.explorer.dexstats.info/\"]", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "Add the path suffixes for the explorer's address and transaction URLs in ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "explorer_paths.json", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "explorer_paths.json", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "3-explorer-url-required-excluding-tokens" + }, + { + "text": "4. Electrum Servers (required)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Electrum file name must be coin's ticker name in all ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "capital", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " letters.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Electrum file name must not have any file extension. It is a file without any ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " extension.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "It must be a valid JSON format as shown in the following example:", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Details of at least 2 Electrum servers must be provided.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "The address and port of electrum server are required. The address of electrum server can either be a DNS or an IP address.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Protocol can be \"SSL\" or \"TCP\". For WebDEX (wasm) listings, SSL is required.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Contact information must be provided in case the server admin needs to be contacted in emergency situations. Failing servers will result in an automatic delisting of your coin upon the next release of the Komodo DeFi Framework apps.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "The status of currently listed ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "ElectrumX", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " servers is monitored via a public ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "API", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " and ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Dashboard", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": ". For help setting up Telegram or Discord alerts for your servers, join the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "#dev-support", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " channel in the ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Komodo Platform Discord", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "ElectrumX", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "API", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Dashboard", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "Komodo Platform Discord", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "disable_cert_verification", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " field is optional and defaults to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "false", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": ". If set to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "true", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": ", the SSL certificate verification will be disabled.\nThis can be used when the server has a self-signed certificate, but it is not recommended for production use.\n", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "To avoid SSL certificate validation issues, it is highly recommended to use ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "EFF's Certbot", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": " to generate SSL certificates for ElectrumX servers.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "EFF's Certbot", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "4-electrum-servers-required" + }, + { + "text": "5. Ethereum info file (Required for EVM-like platforms)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "Ethereum file name must be coin's ticker name in all ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "capital", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": " letters.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "Ethereum file name must not have any file extension. It is a file without any ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": " extension.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "Swap contract address must be the address of ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "etomic swap smart contract", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": " deployed to ETH network, ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "example", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": ".", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "etomic swap smart contract", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "example", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "At least minimum 2 or more URLs of RPC nodes must be provided.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "Contact information must be provided in case the server admin needs to be contacted in urgent cases. It can be any contact information out of the examples provided.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "The RPC node URL can either be a DNS or an IP address with port.", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "It must be a valid JSON format as shown in the following example:", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-ethereum-info-file-required-for-evm-like-platforms" + }, + { + "text": "5. Forex, Nomics, CoinGecko & CoinPaprika Price IDs (optional)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "The API IDs are stored in json files within the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "/api_ids", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": " folder, and used to source price and chart date in Komodo DeFi Framework apps.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "For ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "CoinGecko", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": " it is conveniently displayed on the right had side of a coins page as below -", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "CoinGecko", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "For ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "CoinPaprika", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": " it is the same as displayed in a coin's URL -", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "CoinPaprika", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "Nomics was shutdown\nFor ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "[Nomics](https://nomics.com/assets/kmd-komodo/widget)", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": " you can find it under the \"widget\" tab for a coin.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "For For Forex the API ID is the same as the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "ISO 4217 currency code", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "ISO 4217 currency code", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "Add these IDs to their respective json file within the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "/api_ids", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": " folder in the format ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "\"TICKER\": \"API_ID\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "5-forex-nomics-coin-gecko-and-coin-paprika-price-ids-optional" + }, + { + "text": "6. Derivation Path", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "The ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "BIP44 derivation path", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": " is now required to ensure Hierarchical deterministic wallet functionality. The best source for this data is via ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "Satoshi Labs SLP-044", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "BIP44 derivation path", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "Satoshi Labs SLP-044", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "6-derivation-path" + }, + { + "text": "7. Trezor coin name (optional)", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": "For Trezor compatibility, this field is required. You can find this value at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": "https://trezor.io/coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": ". Not all coins are listed on this page by default, but if compatible can be found by searching the supported coins. The value is the name of the coin in larger black text (not the grey text in brackets). E.g. for the image below, the Trezor coin name would be ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": "Qtum", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": "https://trezor.io/coins", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "7-trezor-coin-name-optional" + }, + { + "text": "8. Successful swap confirmation", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "The coin must have participated in a successful Atomic Swap using ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "Komodo DeFi Framework ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "Komodo DeFi Framework ", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "When submitting your coin addition request, please submit the URLs of the 5 transactions (", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "takerfee sent", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "maker payment", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "taker payment", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "taker payment spent", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "maker payment spent", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": ") produced by successful swap in a new file inside the swaps directory- here's an ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "example for KMD-ETH", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": ". This means that, before going through the further steps and submitting the information to this coins database repo, you would have performed a successful atomic swap. The further steps explain the expected files/values to be submitted.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "example for KMD-ETH", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "You can learn about performing an atomic swap from our documentation at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "Activating a coin at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "Walkthrough at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "this link", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "If you have any questions, please ask in the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "#support", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": " channel in ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "our Discord server", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": " or you can get help from the team at ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "coinintegration@komodoplatform.com", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "partners@komodplatform.com", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": " .", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "our Discord server", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "coinintegration@komodoplatform.com", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + }, + { + "text": "partners@komodplatform.com", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/listing-a-new-coin", + "closestElementReference": "8-successful-swap-confirmation" + } + ], + "komodo-defi-framework/tutorials/query-the-mm2-database": [ + { + "text": "How to Query the MM2 SQLite Database", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "The Komodo DeFi Framework API stores historical information such as swaps and orders within an SQLite database, located under the DB user data folder (e.g. ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "/DB/", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "/MM2.db').", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "There are a variety of methods to query sqlite databases. Examples below show how to do a sqlite query in Linux terminal, but first you might need to install sqlite with ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "sudo apt install sqlite3", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "The tables and columns available to query are as follows:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "how-to-query-the-mm-2-sq-lite-database" + }, + { + "text": "my_swaps", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-swaps" + }, + { + "text": "This table keeps a record of all swaps successfully performed in this pubkey's MM2.db", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-swaps" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | ----------- | ------------ | ------------- |\n| 0 | id | INTEGER | Primary Key |\n| 1 | my_coin | VARCHAR(255) | Coin sent |\n| 2 | other_coin | VARCHAR(255) | Coin received |\n| 3 | uuid | VARCHAR(255) | Swap UUID |\n| 4 | started_at | INTEGER | Timestamp |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-swaps" + }, + { + "text": "Query:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query" + }, + { + "text": "sqlite3 ${PATH_TO_MM2_DB_FILE} \"SELECT * FROM my_swaps WHERE id=2 LIMIT 1\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query" + }, + { + "text": "Response:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "response" + }, + { + "text": "2|MARTY|DOC|7086bc8e-bdaa-44b0-ac9b-01aa8760b62b|1636956829", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "response" + }, + { + "text": "stats_swaps", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": "This table keeps a detailed record of all swaps performed (including failed) in this pubkey's MM2.db", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | ----------------------- | ------------ | ----------------------------------------------- |\n| 0 | id | INTEGER | Primary key |\n| 1 | maker_coin | VARCHAR(255) | Maker coin |\n| 2 | taker_coin | VARCHAR(255) | Taker coin |\n| 3 | uuid | VARCHAR(255) | Swap UUID |\n| 4 | started_at | INTEGER | Timestamp |\n| 5 | finished_at | INTEGER | Timestamp |\n| 6 | maker_amount | DECIMAL | Maker coin |\n| 7 | taker_amount | DECIMAL | Taker coin |\n| 8 | is_success | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": " for successful, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": "0", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": " for failed |\n| 9 | maker_coin_ticker | VARCHAR(255) | Maker coin ticker |\n| 10 | maker_coin_platform | VARCHAR(255) | Maker coin platform |\n| 11 | taker_coin_ticker | VARCHAR(255) | Taker coin ticker |\n| 12 | taker_coin_platform | VARCHAR(255) | Taker coin platform |\n| 13 | maker_coin_usd_price | DECIMAL | USD price of maker coin at the time of the swap |\n| 14 | taker_coin_usd_price | DECIMAL | USD price of taker coin at the time of the swap |\n| 15 | taker_pubkey | DECIMAL | Taker pubkey |\n| 16 | maker_pubkey | DECIMAL | Maker pubkey |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-swaps" + }, + { + "text": "Query:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-2" + }, + { + "text": "sqlite3 ${PATH_TO_MM2_DB_FILE} \"SELECT * FROM stats_swaps WHERE taker_coin = 'DOGE' and maker_coin = 'DGB' ORDER BY finished_at DESC LIMIT 1;\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-2" + }, + { + "text": "Response:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "response-2" + }, + { + "text": "my_orders", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "This table keeps a detailed record of all orders placed in this pubkey's MM2.db", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | --------------- | ------------ | ------------------------------------------------- |\n| 0 | id | INTEGER | Primary Key |\n| 1 | uuid | VARCHAR(255) | Order UUID |\n| 2 | type | VARCHAR(255) | Order Type |\n| 3 | initial_action | VARCHAR(255) | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "Buy", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "Sell", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": ". Setprice maker orders are ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "Sell", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": " |\n| 4 | base | VARCHAR(255) | Base Coin |\n| 5 | rel | VARCHAR(255) | Rel Coin |\n| 6 | price | DECIMAL | Order Price |\n| 7 | volume | DECIMAL | Order Volume |\n| 8 | created_at | INTEGER | Timestamp |\n| 9 | last_updated | INTEGER | Timestamp |\n| 10 | was_taker | INTEGER | ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": " if taker, ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "2", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": " if maker |\n| 11 | status | VARCHAR(255) | Order status |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "my-orders" + }, + { + "text": "Query:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-3" + }, + { + "text": "sqlite3 ${PATH_TO_MM2_DB_FILE} \"SELECT * FROM my_orders WHERE base = 'DOC' and rel= 'MARTY' LIMIT 6\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-3" + }, + { + "text": "Response:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "response-3" + }, + { + "text": "nodes", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": "This table stores a record of all nodes ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": "added for stats collection", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": " in this pubkey's MM2.db", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": "added for stats collection", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | -------- | ------------ | ----------- |\n| 0 | id | INTEGER | Primary Key |\n| 1 | name | VARCHAR(255) | Node name |\n| 2 | address | VARCHAR(255) | Node IP |\n| 3 | peer_id | VARCHAR(255) | Node PeerID |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "nodes" + }, + { + "text": "Query:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-4" + }, + { + "text": "sqlite3 ${PATH_TO_MM2_DB_FILE} \"SELECT * FROM nodes WHERE name = 'dragonhound_DEV'\"", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-4" + }, + { + "text": "Respose:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "respose" + }, + { + "text": "37|dragonhound_DEV|104.238.221.61|12D3KooWEnrvbqvtTowYMR8FnBeKtryTj9RcXGx8EPpFZHou2ruP", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "respose" + }, + { + "text": "stats_nodes", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": "This table stores a record of results returned by registered nodes ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": "tracked for node stats collection", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": " in this pubkey's MM2.db", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": "tracked for node stats collection", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": "| ID | Name | Type | Description |\n| -- | --------- | ------------ | -------------------------------------------- |\n| 0 | id | INTEGER | Primary Key |\n| 1 | name | VARCHAR(255) | Node name |\n| 2 | version | VARCHAR(255) | Node Komodo DeFi Framework API (mm2) version |\n| 3 | timestamp | INTEGER | Timestamp |\n| 4 | error | VARCHAR(255) | Error details |", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "stats-nodes" + }, + { + "text": "Query:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-5" + }, + { + "text": "sqlite3 ${PATH_TO_MM2_DB_FILE} \"SELECT * FROM stats_nodes WHERE name = 'dragonhound_DEV'\" LIMIT 3", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "query-5" + }, + { + "text": "Response:", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/query-the-mm2-database", + "closestElementReference": "response-4" + } + ], + "komodo-defi-framework/tutorials/setup-komodefi-api-aws": [ + { + "text": "How to Setup and use the Komodo DeFi Framework API on an AWS EC2 instance", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "how-to-setup-and-use-the-komodo-de-fi-framework-api-on-an-aws-ec-2-instance" + }, + { + "text": "Create the Komodo DeFi Framework setup script", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "Create a file named ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "komodo_defi_framework_setup.txt", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "Copy the code below into the file", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "In the code, find the text, ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "SEED_WORDS_PLEASE_REPLACE", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": ", and replace it with custom seed words of your own", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "These seed words are used to generate new blockchain addresses, and therefore the seed words should be treated like a unique password", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "These seed words are used to generate new blockchain addresses, and therefore the seed words should be treated like a unique password", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "Find the text, ", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "RPC_PASS_PLEASE_REPLACE", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": ", and replace this also with a strong password", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "This is used to authenticate yourself while communicating with the Komodo DeFi Framework API", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "This is used to authenticate yourself while communicating with the Komodo DeFi Framework API", + "tagName": "li", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-the-komodo-de-fi-framework-setup-script" + }, + { + "text": "Install AWS CLI , get AWS access credentials", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "install-aws-cli-get-aws-access-credentials" + }, + { + "text": "Installation", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "To obtain access credentials, log in to your AWS account and create an IAM user as described in this linked post ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "https://tntdrive.com/where-do-i-get-my-access-keys.aspx#create-iam-user-and-keys.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": " While following the post, make sure to select the policy ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "AmazonEC2FullAccess", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": " instead of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "AmazonS3FullAccess", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": ". Copy the \"Access key ID\" and \"Secret access key\" to another location while completing the post's instructions; these are necessary later.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "https://tntdrive.com/where-do-i-get-my-access-keys.aspx#create-iam-user-and-keys.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "Make sure the SSH directory exists.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "installation" + }, + { + "text": "Create an EC2 Instance", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "Open a terminal, navigate to the directory where the file ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "komodo_defi_framework_setup.txt", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": " is located, and issue the following commands.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "In the terminal commands below, note that you must first change the texts ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "REPLACE_ACCESS_KEY_ID", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "REPLACE_SECRET_ACCESS_KEY", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": " with your \"Access key ID\" and \"Secret access key\" obtained during the setup procedure. If necessary, also change the region where the EC2 instance is hosted by changing all instances of ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "us-east-1", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": " in the commands.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "If you see an error similar to the following, click the link that is found in the error. On the page to which your browser is directed click the button \"Continue to Subscribe\" and then click the button \"Accept Terms\".", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "Wait for the Subscription to be processed and issue the last command again.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "Verify that the instance launched successfully by visiting ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "this linked page.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "this linked page.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "From the linked page above, copy the \"IPv4 Public IP\" of the instance and use it to replace the text ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "REPLACE_PUBLIC_IP", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": " in the following command.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "Edit the command above as necessary to exchange one curl command for another from ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "the Komodo DeFi Framework API.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + }, + { + "text": "the Komodo DeFi Framework API.", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/setup-komodefi-api-aws", + "closestElementReference": "create-an-ec-2-instance" + } + ], + "komodo-defi-framework/tutorials/using-komodefi-cli-in-console": [ + { + "text": "Using Komodo DeFi Framework CLI in Console", + "tagName": "h1", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "using-komodo-de-fi-framework-cli-in-console" + }, + { + "text": "For convenience, the standalone ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "using-komodo-de-fi-framework-cli-in-console" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "using-komodo-de-fi-framework-cli-in-console" + }, + { + "text": " binary is provided to be used for interacting with the Komodo DeFi Framework network from the command line.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "using-komodo-de-fi-framework-cli-in-console" + }, + { + "text": "Building Komodo DeFi Framework CLI", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "Refer to ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework?tab=readme-ov-file#building-from-source", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": " for instructions on installing dependencies and preparing your build environment.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework?tab=readme-ov-file#building-from-source", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "Once it is ready, you can build the komodefi-cli binary by running the following command from the root folder of the project repository:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "We also add the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "bin", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": " directory to the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "PATH", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": " environment variable so that the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": " binary can be executed from any location.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "building-komodo-de-fi-framework-cli" + }, + { + "text": "Configuration", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuration" + }, + { + "text": "Setting Default CLI Root Path", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": "You can customize the default root directory for ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": " by setting the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": "KOMODEFI_CLI_ROOT", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": " environment variable. This allows you to specify a location for saving configuration files, binaries, and other related data.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "setting-default-cli-root-path" + }, + { + "text": "Downloading the Core API binary", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "downloading-the-core-api-binary" + }, + { + "text": "Before using the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "downloading-the-core-api-binary" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "downloading-the-core-api-binary" + }, + { + "text": " binary, you need to download the Core API binary. Running the following command to download the latest release:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "downloading-the-core-api-binary" + }, + { + "text": "Configuring the Core API", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "For the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " to work, you need to configure the Core API by setting the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " data and the information required for an ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " file. For more information, run the following command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "MM2.json", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "Which will return", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "If you have an existing coins file and/or MM2.json file, you can use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "--mm-coins-path", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "--mm-conf-path", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " options to specify the file paths, as below.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "Alternatively, run ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "komodefi-cli init", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " without any options to create the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "coins", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "MM2.json", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": " files interactively. Pressing enter for each option will use the default values. In the case of the mnemonic phrase, you can enter your own mnemonic phrase or press enter to use a newly generated one.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "configuring-the-core-api" + }, + { + "text": "Starting the Core API", + "tagName": "h4", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": "After the configuration is set, you can start the Core API by running ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": "komodefi-cli mm2 start", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": ". You can also use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": "--help", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": " option to see the available options for this command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": "For example, to start the Core API and save its runtime logs to ~/logs/mm2.log, you can run the following command:", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "starting-the-core-api" + }, + { + "text": "Usage", + "tagName": "h2", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "From here, you are ready to use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": " binary to interact with the Komodo DeFi Framework network. You can use the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "--help", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": " option to see the available commands and options.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "For more details and examples of commands available in ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "komodefi-cli", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": ", refer to the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "komodefi-cli documentation", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": " within the ", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": " repository.", + "tagName": "p", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "komodefi-cli documentation", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "komodo-defi-framework/tutorials/using-komodefi-cli-in-console", + "closestElementReference": "usage" + } + ], + "komodo-wallet/desktop/access-log-files": [ + { + "text": "Accessing Komodo Wallet Log Files", + "tagName": "h1", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "The simplest way to access the debug logs in Komodo Wallet desktop is through the Settings menu.", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "Under the general tab, click on the Logs > \"Open Folder\" button", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "For each session of Komodo Wallet, two log files are created", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "Each file starts with a date and time, which helps to find the most recent logs or filter for a specific time period. The file ending in .log contains the desktop application debug log messages, and the file ending in .mm2.log contains the backend Komodo DeFi Framework (mm2) debug log messages.", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "If the app has crashed, the most relevant logs will be at the end of the file. For other bugs, you might be able to find a related log entry by searching for the word error, or if you suspect it is related to ", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "an Komodo Wallet API method", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": ", you can search for the method name, such as ", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "my_balance", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": ". If you're not sure where to look, just send the complete log files.", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "an Komodo Wallet API method", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "my_balance", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "There are a few ways you can communicate this information to the developers or our support team:", + "tagName": "p", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "Join the ", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "Komodo Platform Discord", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": " and ask for help in the #dex-desktop channel, and our support team can open a direct message chat where you can drag and drop the files into the chat to upload them. Komodo Team members will have green usernames, so look out for imposter accounts pretending to be support. We will never ask for personal identifying information or your private keys or wallet seed phrase.", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "Komodo Platform Discord", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "For smaller log files, you can copy part or all of the logfile into ", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "https://zerobin.net/", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": " and then send the ", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "generated link", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": " for your pasted data to one of our support team. With ZeroBin, you can optionally add a password to encrypt the pasted text, set it to delete once read, or set an expiry period after which your pasted data will be deleted.", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "https://zerobin.net/", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "generated link", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "If you've found a specific error in your logfile related to a bug, you can ", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "open an issue on the komodo-wallet-desktop repository", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": " and paste the related lines from your log file along with a short description of the bug and how it might be reproduced (e.g. what you were doing just before it happened).", + "tagName": "li", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + }, + { + "text": "open an issue on the komodo-wallet-desktop repository", + "tagName": "a", + "path": "komodo-wallet/desktop/access-log-files", + "closestElementReference": "accessing-komodo-wallet-log-files" + } + ], + "komodo-wallet/desktop/activate-coins": [ + { + "text": "Activating Coins in Komodo Wallet", + "tagName": "h1", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "After creating and logging in to your wallet, ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": " will launch with ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "BTC", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": ", ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "LTC", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "KMD", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": " enabled by default. To activate additional coins, click on the \"Add Crypto\" button in the sidebar.", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "BTC", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "LTC", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "KMD", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "You can use the search bar at the top to filter the list below. Make your selection by clicking on rows in the list. By default there is an activation limit of 50 coins, but you can increase this in settings if more are needed.", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "Once your selection is complete, click the \"Enable\" button to continue. Your selected coins will be added to the wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "As you can see above, even though ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": " was not selected, it was activated alongside the Shiba Inu ERC-20 token. Anytime you activate a protocol token, its parent coin will also be activated. For example if activating ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "MINDS", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": " token, it will automatically also enable ", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "Ethereum", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "ETH", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "MINDS", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + }, + { + "text": "Ethereum", + "tagName": "a", + "path": "komodo-wallet/desktop/activate-coins", + "closestElementReference": "activating-coins-in-komodo-wallet" + } + ], + "komodo-wallet/desktop/add-custom-tokens": [ + { + "text": "Add Custom Tokens to Komodo Wallet", + "tagName": "h1", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Komodo Wallet supports hundreds of coins right out of the box, but if you want to add a new token which is not yet in the wallet, you can add it yourself within the app!", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "First, open the coin activation modal.", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Next, click on the \"Add a custom asset\"", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Now we need to select which protocol the token we want to add is on from the drop down. For this example, I'll select ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "ETH", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": ", and then click \"Next\" to continue.", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "ETH", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Now we need to input the custom token's contract address, which we can find on ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "https://www.bscscan.com/", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": " (for BEP-20 tokens) or ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "https://etherscan.io/", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": " (for ERC-20 tokens). There is a link to the selected protocol's explorer in the app below the input field, and the animation below it demonstrates how to find the correct token contract address.", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "https://www.bscscan.com/", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "https://etherscan.io/", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Next, we need to select an image to use for the token. You can probably find an official token icon on the project's website or services like ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Coingecko", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": " or ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "CoinPaprika", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": ", or you can add your own custom image.", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Coingecko", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "CoinPaprika", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "The last step is to get a CoinGecko ID for the token (if available) so Komodo Wallet can display price data for this token. If the token has no ID or you can't find it, just input \"test-coin\".", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Click the \"Preview\" button to see and confirm the custom coin configuration data.", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "If everything looks ok, click \"Submit & Restart\". This will apply the update to your local coins data, and restart Komodo Wallet. Log in, and you will be able to see your custom added token!", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "Please note that other Komodo Wallet users will not have this custom token in their wallet (unless they also added it themselves).", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "To apply for a formal listing on Komodo Wallet Desktop, please ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "review the requirements", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": " in our \"coins\" github repository, and get in our with our team on the ", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "KomodoPlatform Discord", + "tagName": "p", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "review the requirements", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + }, + { + "text": "KomodoPlatform Discord", + "tagName": "a", + "path": "komodo-wallet/desktop/add-custom-tokens", + "closestElementReference": "add-custom-tokens-to-komodo-wallet" + } + ], + "komodo-wallet/desktop/create-new-wallet": [ + { + "text": "Create a New Wallet in Komodo Wallet", + "tagName": "h1", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "After downloading the Komodo Wallet Desktop wallet from ", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "https://komodoplatform.com/en/wallets.html", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": " launch the application and you will see the screen below.", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "https://komodoplatform.com/en/wallets.html", + "tagName": "a", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "To create a new wallet, click on the \"New Wallet\" button.", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Give your wallet a name, and be sure to securely back up the seed phrase offline - it is the key to your coins and should not be shared with anyone!", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Click next to confirm the seed phrase. You will be given a series of words and will have to confirm their position within your seed phrase to confirm it has been securely backed up.", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Once your seed is confirmed, you will need to enter and confirm your wallet password. This password will be used to encrypt and decrypt your seed when launching Komodo Wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Finally, read the EULA & Terms and Conditions, and indicate acceptance by clicking on the checkboxes.", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Your wallet has now been created!", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Now you can log in to Komodo Wallet and:", + "tagName": "p", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Enable more coins or tokens", + "tagName": "li", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Get some DOC and MARTY from the faucet", + "tagName": "li", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Do a Komodo swap trade", + "tagName": "li", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "View your private keys", + "tagName": "li", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + }, + { + "text": "Send / Receive funds", + "tagName": "li", + "path": "komodo-wallet/desktop/create-new-wallet", + "closestElementReference": "create-a-new-wallet-in-komodo-wallet" + } + ], + "komodo-wallet/desktop/import-private-key-or-seed-phrase": [ + { + "text": "Import Private Key or Seed Phrase Into Komodo Wallet", + "tagName": "h1", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "After downloading the Komodo Wallet Desktop wallet from ", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "https://komodoplatform.com/en/wallets.html", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": " launch the application and you will see the screen below.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "https://komodoplatform.com/en/wallets.html", + "tagName": "a", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "To import your private key or mnemonic seed phrase, click the \"Import wallet\" button.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "First, set a name for your wallet. It can be any string. Doesn't need to be the same name from your previous wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Your mnemonic phrase is important and must be entered precisely. Make sure you keep in mind the following things:", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "There should be no spaces at the beginning or end of the mnemonic phrase", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "There should only be one space between each pair of words", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Each of the words should be present and spelled exactly as in the ", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "BIP39 word list", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "BIP39 word list", + "tagName": "a", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "If using a private key or non-BIP39 compliant seed, you will need to confirm you understand the implications of this by selecting the \"Allow custom seed\" radio button and typing \"I understand\" before continuing.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "BIP39 compliant mnemonic seed phrases are from a known word list, and are all lowercase with a single space between words. Spelling is important! Any minor change to a seed will generate a completely different wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Next, you will need to enter and confirm your wallet password. This password will be used to encrypt and decrypt your seed when launching Komodo Wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "P.S: The password can be any valid string. No need to use the same password from your previous wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Finally, read the EULA & Terms and Conditions, and indicate acceptance by clicking on the checkboxes.", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Your wallet has now been created!", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Now you can log in to Komodo Wallet and:", + "tagName": "p", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Enable more coins or tokens", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Get some DOC and MARTY from the faucet", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Do a Komodo swap trade", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "View your private keys", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + }, + { + "text": "Send / Receive funds", + "tagName": "li", + "path": "komodo-wallet/desktop/import-private-key-or-seed-phrase", + "closestElementReference": "import-private-key-or-seed-phrase-into-komodo-wallet" + } + ], + "komodo-wallet/desktop": [ + { + "text": "Komodo Wallet Desktop Tutorials", + "tagName": "h1", + "path": "komodo-wallet/desktop", + "closestElementReference": "komodo-wallet-desktop-tutorials" + }, + { + "text": "This section contains tutorials to perform various tasks on the Komodo Wallet Desktop app.", + "tagName": "p", + "path": "komodo-wallet/desktop", + "closestElementReference": "komodo-wallet-desktop-tutorials" + }, + { + "text": "Table of contents:", + "tagName": "p", + "path": "komodo-wallet/desktop", + "closestElementReference": "komodo-wallet-desktop-tutorials" + } + ], + "komodo-wallet/desktop/reset-configuration-to-default": [ + { + "text": "Resetting Komodo Wallet Configuration to Default", + "tagName": "h1", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Sometimes an improper shut down may result in your coins.json file being corrupted. If you load Komodo Wallet and see no coins available, follow the steps below:", + "tagName": "p", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Click on settings in the lower part of the sidebar.", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Under the General tab, on the line for ", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Reset wallet configuration", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": ", click on the Reset button.", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Click confirm to reset your configuration.", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "This will restart the app.", + "tagName": "li", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "When you log in again, the default coins should be enabled and visible. To activate other coins, refer to the ", + "tagName": "p", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Komodo Wallet Desktop coin activation guide", + "tagName": "p", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + }, + { + "text": "Komodo Wallet Desktop coin activation guide", + "tagName": "a", + "path": "komodo-wallet/desktop/reset-configuration-to-default", + "closestElementReference": "resetting-komodo-wallet-configuration-to-default" + } + ], + "komodo-wallet/desktop/send-commands-to-mm2-instance": [ + { + "text": "Send Commands to an MM2 Instance Being Run by Komodo Wallet Desktop Using Postman", + "tagName": "h1", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Why Postman", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": ": Postman allows easy sending of RPC requests to an Komodo DeFi Framework instance launched by the Komodo Wallet Desktop application through a friendly GUI.", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Prerequisites", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": ": Download and install the latest versions of ", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": " and ", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Postman", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": " on your computer.", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Komodo Wallet Desktop", + "tagName": "a", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Postman", + "tagName": "a", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "On Komodo Wallet Desktop", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Start the application and login to your wallet", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Start the application and login to your wallet", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Click the settings button on the bottom left part of the application", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Click the settings button on the bottom left part of the application", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Under the Security section, click \"Show\" on the line that says \"View seed and private keys\"", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Input your password and click View in the dialog box that pops out", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Click the copy button beside \"RPC Password\" to copy it. This \"RPC Password\" is also referred to as \"userpass\". It is reset every time the Komodo Wallet Desktop application is restarted", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Save the \"userpass\" value to a text file for later usage and leave the Komodo Wallet Desktop application running", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "On Postman", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": ":", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Launch the application. If it is your first time launching it, you will see a screen similar to the following. Click the \"Skip and go to the app\" link to skip account creation/login", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Click the “Eye icon” in the top right part of the screen to create a new Environment", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "In the popout dialog menu, Click the \"Add\" button in the Environment section", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "In the new tab that opens, change the Environment's name to KomodoWallet and add variables as shown in the next step", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Add a variable with the name \"userpass\" and for its value, paste the \"RPC password\" value copied and saved from Komodo Wallet Desktop. Then, add another variable with the name \"url\" and set its value as \"localhost:7783\" and save as shown in the picture below", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Change environment to KomodoWallet by clicking on the dropdown that says \"No Environment\" beside the eye icon and selecting \"KomodoWallet\"", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Click \"New\" to start creating a new RPC request", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "In the popout menu, select \"HTTP Request\"", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Select \"Post\" as the request type", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Input \"{{url}}\" in the input bar beside POST", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Next select \"Body\" → \"raw\" → \"JSON\" as shown in the picture below", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "In the text area available, you can input the data part of any of the RPC requests from the docs. Example: ", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "version | Komodo Documentation", + "tagName": "li", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "version | Komodo Documentation", + "tagName": "a", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "The RPC call looks like:", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "the --data part is:", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "remove the quotes outside the brackets, replace escaped quotes: \" with regular quotes: \" and \"$userpass\" with \"{{userpass}}\"", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "you will get:", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "input it in the text area and click the Send button to receive output from the Komodo DeFi Framework instance launched by the Komodo Wallet Desktop application", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "The same method can be used to execute any other RPC command from the docs at ", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Note About Rational Number Type | Komodo Documentation", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Note About Rational Number Type | Komodo Documentation", + "tagName": "a", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + }, + { + "text": "Note: Every time the Komodo Wallet Desktop application is restarted, the \"RPC password/userpass\" is also reset. So copy it and update the value of the \"userpass\" variable in the environment named \"KomodoWallet\" in Postman", + "tagName": "p", + "path": "komodo-wallet/desktop/send-commands-to-mm2-instance", + "closestElementReference": "send-commands-to-an-mm-2-instance-being-run-by-komodo-wallet-desktop-using-postman" + } + ], + "komodo-wallet/desktop/simple-view-trading": [ + { + "text": "Simple View Trading on Komodo Wallet Desktop", + "tagName": "h1", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Once you have created a wallet and added funds, you are ready to use the Komodo Wallet trading features.\nThere are two views for trading:", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Simple", + "tagName": "li", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": ": which will match you with the best order available for a selected pair", + "tagName": "li", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Pro", + "tagName": "li", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": ": which shows more information about orders available on the orderbook and more options to customize when placing your order.", + "tagName": "li", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "To use the Simple view, log in and click on the \"DEX\" icon in the navigation menu on the left.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Check near the top right to switch to Simple mode if it is not already, then click on the \"From\" coin selector to see the your available coins to swap. Select a coin by clicking on it.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Next, enter the amount of the selected coin you want to trade. You can use the \"MAX\" button to use all of your tradable balance.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "This will enable the \"To\" coin selector - click on it to see a list of orders which are available for the coin and amount you want to swap.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet will calculate the estimated fees for your swap, and enable the \"Swap Now\" button.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Click the \"Swap Now\" button to confirm the trade details, and apply any custom protection settings (optional).", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Now you can click \"Confirm\" to initiate the swap! This will move us to the \"Orders\" tab, which lists any in-progress or not yet started trades we are currently involved in. When a order is being matched, it will briefly disappear from the list. You can click on the order to view its progress.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Here you will see the swap duration, and if the swap is in progress, which step it is on and an estimate of how long until complete. Once completed, the swap will move to the list under the \"History\" tab.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + }, + { + "text": "Here you can review past swaps, and the swap details modal will include a \"View on explorer\" button. If you click on it a browser tab showing the transactions for the swap on a block explorer will open.", + "tagName": "p", + "path": "komodo-wallet/desktop/simple-view-trading", + "closestElementReference": "simple-view-trading-on-komodo-wallet-desktop" + } + ], + "komodo-wallet/desktop/use-seed-words-to-restore-the-address": [ + { + "text": "Use Seed Words Created by a Komodo Ecosystem Wallet to Restore the Address on Komodo Wallet", + "tagName": "h1", + "path": "komodo-wallet/desktop/use-seed-words-to-restore-the-address", + "closestElementReference": "use-seed-words-created-by-a-komodo-ecosystem-wallet-to-restore-the-address-on-komodo-wallet" + }, + { + "text": "Follow the guide at ", + "tagName": "li", + "path": "komodo-wallet/desktop/use-seed-words-to-restore-the-address", + "closestElementReference": "use-seed-words-created-by-a-komodo-ecosystem-wallet-to-restore-the-address-on-komodo-wallet" + }, + { + "text": "Import Private Key or Seed Phrase Into Komodo Wallet", + "tagName": "li", + "path": "komodo-wallet/desktop/use-seed-words-to-restore-the-address", + "closestElementReference": "use-seed-words-created-by-a-komodo-ecosystem-wallet-to-restore-the-address-on-komodo-wallet" + }, + { + "text": "Import Private Key or Seed Phrase Into Komodo Wallet", + "tagName": "a", + "path": "komodo-wallet/desktop/use-seed-words-to-restore-the-address", + "closestElementReference": "use-seed-words-created-by-a-komodo-ecosystem-wallet-to-restore-the-address-on-komodo-wallet" + }, + { + "text": "Do Not select the \"Allow custom seed\" radio button", + "tagName": "li", + "path": "komodo-wallet/desktop/use-seed-words-to-restore-the-address", + "closestElementReference": "use-seed-words-created-by-a-komodo-ecosystem-wallet-to-restore-the-address-on-komodo-wallet" + } + ], + "komodo-wallet/desktop/view-your-wallet-address": [ + { + "text": "Viewing Your Wallet Address in Komodo Wallet Desktop", + "tagName": "h1", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Before you can start trading on ", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": ", you will need to add some funds to your wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet", + "tagName": "a", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "To see your address for a coin, first log in to your wallet, then select a coin by clicking on its row from the Portfolio page.", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Alternatively, you can click on the wallet icon in the left navigation menu and then select a coin from the coins list on the left. If you cant see the coin you want to send funds to, ", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "make sure it has been activated", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": " first.", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "make sure it has been activated", + "tagName": "a", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "If you click on the \"Receive\" button a modal will appear with your wallet address, which you can copy and share with someone to send you funds, and a QR code which you can scan to send funds from a mobile wallet.", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "For the test coins DOC & MARTY, there is also a \"Faucet\" button which will send you some free coins for you to use testing the ", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": " trading features. ", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Please note that DOC & MARTY coins have no value", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + }, + { + "text": "Komodo Wallet", + "tagName": "a", + "path": "komodo-wallet/desktop/view-your-wallet-address", + "closestElementReference": "viewing-your-wallet-address-in-komodo-wallet-desktop" + } + ], + "komodo-wallet": [ + { + "text": "Komodo Wallet Guides", + "tagName": "h1", + "path": "komodo-wallet", + "closestElementReference": "komodo-wallet-guides" + }, + { + "text": "This section of the documentation contains end user guides for the Komodo Wallet on all platforms:", + "tagName": "p", + "path": "komodo-wallet", + "closestElementReference": "komodo-wallet-guides" + }, + { + "text": "(Mobile)[/komodo-wallet/mobile/]", + "tagName": "li", + "path": "komodo-wallet", + "closestElementReference": "komodo-wallet-guides" + }, + { + "text": "(Desktop)[/komodo-wallet/desktop/]", + "tagName": "li", + "path": "komodo-wallet", + "closestElementReference": "komodo-wallet-guides" + } + ], + "komodo-wallet/mobile/add-and-activate-coins": [ + { + "text": "How to Add and Activate Coins on Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/add-and-activate-coins", + "closestElementReference": "how-to-add-and-activate-coins-on-komodo-mobile-wallet" + }, + { + "text": "Click on the \"+\" icon on the \"Portfolio\" screen", + "tagName": "li", + "path": "komodo-wallet/mobile/add-and-activate-coins", + "closestElementReference": "how-to-add-and-activate-coins-on-komodo-mobile-wallet" + }, + { + "text": "Select the coin you want to activate by clicking on the left side of each coin and press \"DONE\"", + "tagName": "li", + "path": "komodo-wallet/mobile/add-and-activate-coins", + "closestElementReference": "how-to-add-and-activate-coins-on-komodo-mobile-wallet" + }, + { + "text": "Once activated, Komodo Mobile Wallet brings you back to the \"Portfolio\" tab. Your coins should now be activated.", + "tagName": "p", + "path": "komodo-wallet/mobile/add-and-activate-coins", + "closestElementReference": "how-to-add-and-activate-coins-on-komodo-mobile-wallet" + } + ], + "komodo-wallet/mobile/create-a-new-wallet": [ + { + "text": "How to Create a New Wallet Using Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Start Komodo Mobile Wallet app", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Start Komodo Mobile Wallet app", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Select \"CREATE A WALLET\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Select \"CREATE A WALLET\" button", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Enter a memorable name to your wallet and press \"LET'S GET SET UP!\"", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Write down your 12 words seed phrase and store in a safe place, then press \"NEXT\"", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Confirm 3 random words in the next 3 steps from your seed list and press \"CONTINUE\"", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Create a password to encrypt your seed", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Make sure to use a strong password with a combination of at least one capital letter, one small letter, a symbol, and numbers.", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Press \"CONFIRM PASSWORD\"", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "If normal encryption takes longer on your phone, enable \"Fast encryption\" and try again.", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Create a PIN", + "tagName": "li", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "In the next two steps you will be asked to provide a custom six digit PIN. You will need this PIN every time you want to access Komodo Wallet.", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Upon completion, Komodo Mobile Wallet returns you to the dashboard.", + "tagName": "p", + "path": "komodo-wallet/mobile/create-a-new-wallet", + "closestElementReference": "how-to-create-a-new-wallet-using-komodo-mobile-wallet" + } + ], + "komodo-wallet/mobile/delete-seed-phrase": [ + { + "text": "How to Delete Seed (Wallet) From Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "This action cannot be undone. Make sure that you backup your seed beforehand.", + "tagName": "p", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "Make sure that you backup your seed\nbeforehand.", + "tagName": "p", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "Make sure that you backup your seed\nbeforehand.", + "tagName": "a", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "Click on \"Settings\" then scroll to the bottom and select the red \"Delete Wallet\" option", + "tagName": "li", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "Enter the password you used to encrypt your seed and click on \"UNLOCK\"", + "tagName": "li", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + }, + { + "text": "Click on the \"DELETE\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/delete-seed-phrase", + "closestElementReference": "how-to-delete-seed-wallet-from-komodo-mobile-wallet" + } + ], + "komodo-wallet/mobile": [ + { + "text": "Komodo Mobile Wallet Tutorials", + "tagName": "h1", + "path": "komodo-wallet/mobile", + "closestElementReference": "komodo-mobile-wallet-tutorials" + }, + { + "text": "This section contains tutorials to perform various tasks on the Komodo Mobile Wallet app.", + "tagName": "p", + "path": "komodo-wallet/mobile", + "closestElementReference": "komodo-mobile-wallet-tutorials" + } + ], + "komodo-wallet/mobile/perform-cross-chain-atomic-swaps": [ + { + "text": "How to Perform Cross-Chain Atomic Swaps Using Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "how-to-perform-cross-chain-atomic-swaps-using-komodo-mobile-wallet" + }, + { + "text": "Prerequisites", + "tagName": "h4", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "You need to have funds at least in 1 coin", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "The coins you want to swap are activated", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "You need to have funds at least in 1 coin", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "You need to have funds at least in 1 coin", + "tagName": "a", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "The coins you want to swap are activated", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "The coins you want to swap are activated", + "tagName": "a", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "Komodo Mobile Wallet is still in a beta-testing phase. Do not use large funds for testing - use the DOC & MARTY test coins for swaps first to gain experience.\nTo obtain coins for testing, you can use the FluxBot bot in the ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": ".", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "Komodo Platform Discord Server", + "tagName": "a", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "Flux Bot Commands", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "| Command | Description |\n| ----------------------------------- | ------------------------------------------------------ |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/atomicdex-orderbook ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns the current KomoDeFi orderbook for a pair. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-balances", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns the current testcoin balances for the faucet. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-drip
", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Sends testcoin funds to the requested address. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-orders", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns active maker orders placed by the faucet. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-recent", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns faucet funds distributed in the last 24 hours. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-swaps-active", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns swaps currently in progress for the faucet. |\n| ", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "/faucet-swaps-recent", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": " | Returns recent swaps or the faucet. |", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "prerequisites" + }, + { + "text": "Instructions", + "tagName": "h4", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Click on the \"DEX\" tab at the bottom of Komodo Mobile Wallet app", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "This will bring you to the DEX view.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "In DEX tab you can perform cross-chain atomic swaps, and view current orders and your swap history.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Swip left or right to view either option", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Select the coin you wish to sell and enter the desired amount", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Select the coin you wish to sell and enter the desired amount", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Select the coin you want to receive for the swap", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "Select the coin you want to receive for the swap", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "The amount modal will fill automatically, based on the amount you want to sell.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "You may also see the best available rate, based on the orders available.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "When ready, click on the \"TRADE\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "On the next screen you will see details of the swap you are about to perform.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "When ready, press the \"CONFIRM\" button to begin the swap", + "tagName": "li", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "You will see the progress of your swap in this screen.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "You may stay on this page until the swap completes, or you may return to another screen. The swap will progress automatically.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + }, + { + "text": "If you are still on the swap monitoring page from before, when your swap completes you will see the following screen.", + "tagName": "p", + "path": "komodo-wallet/mobile/perform-cross-chain-atomic-swaps", + "closestElementReference": "instructions" + } + ], + "komodo-wallet/mobile/recover-seed-phrase": [ + { + "text": "How to Recover Seed on Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": "Click on ", + "tagName": "li", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": "Settings", + "tagName": "li", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": " > ", + "tagName": "li", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": "View Seed", + "tagName": "li", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": "Enter the password you used to encrypt your seed and click \"CONTINUE\"", + "tagName": "li", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + }, + { + "text": "The app will display your seed that you used.", + "tagName": "p", + "path": "komodo-wallet/mobile/recover-seed-phrase", + "closestElementReference": "how-to-recover-seed-on-komodo-mobile-wallet" + } + ], + "komodo-wallet/mobile/restore-a-wallet": [ + { + "text": "How to Restore Wallet Using Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Start Komodo Mobile Wallet app", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Start Komodo Mobile Wallet app", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Click \"RESTORE\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Click \"RESTORE\" button", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Give a memorable name to your wallet and press \"LET'S GET SET UP!\"", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Select \"Allow custom seed\" and paste or type your seed words", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Make sure to include spaces in your seed, just as before.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "If you would like to see what you are typing, click on the eye icon on the right to make the field visible.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Once ready, press the \"CONFIRM\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Create a password to encrypt your seed", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Make sure to use strong password with a combination of at least one capital letter, one small letter, a symbol, and numbers.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Press \"CONFIRM PASSWORD\"", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "If normal encryption takes longer on your phone, enable \"Fast encryption\" and try again.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Create a PIN", + "tagName": "li", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "In the next two steps you will be asked to provide a custom six digit PIN. You will need this PIN every time you want to access Komodo Wallet.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + }, + { + "text": "Upon completion, Komodo Mobile Wallet returns you to the dashboard.", + "tagName": "p", + "path": "komodo-wallet/mobile/restore-a-wallet", + "closestElementReference": "how-to-restore-wallet-using-komodo-mobile-wallet" + } + ], + "komodo-wallet/mobile/view-ongoing-orders-and-swap-history": [ + { + "text": "How to View Ongoing Orders and Swap History on Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "how-to-view-ongoing-orders-and-swap-history-on-komodo-mobile-wallet" + }, + { + "text": "View Ongoing Swaps and Orders", + "tagName": "h4", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-ongoing-swaps-and-orders" + }, + { + "text": "Click on the \"DEX\" tab at the bottom of the screen and swipe from right to left", + "tagName": "li", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-ongoing-swaps-and-orders" + }, + { + "text": "Click on the \"DEX\" tab at the bottom of the screen and swipe from right to left", + "tagName": "p", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-ongoing-swaps-and-orders" + }, + { + "text": "Alternatively, click on the \"ORDERS\" button to view your ongoing swaps and your orders", + "tagName": "li", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-ongoing-swaps-and-orders" + }, + { + "text": "Alternatively, click on the \"ORDERS\" button to view your ongoing swaps and your orders", + "tagName": "p", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-ongoing-swaps-and-orders" + }, + { + "text": "View Your Swap History", + "tagName": "h4", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-your-swap-history" + }, + { + "text": "The swap history tab is on the right of the \"ORDERS\" tab. You should see your swap history here.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-your-swap-history" + }, + { + "text": "If you delete app data in the settings menu or restore this seed on another\nphone, your previous swap data will be lost.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-ongoing-orders-and-swap-history", + "closestElementReference": "view-your-swap-history" + } + ], + "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading": [ + { + "text": "How to View Your Receiving Address to Send Funds for Trading", + "tagName": "h1", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "From the \"Portfolio\" tab, select the coin for the receiving address to view", + "tagName": "li", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "On the coin page, press the \"RECEIVE\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "This will display your receiving address, including a QR code of your address.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "Different coins may have different receiving addresses derived from your seed.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "On the other hand, Komodo (KMD) and any other Komodo-based Smart Chain will have same address.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "Example of a KMD receiving address.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + }, + { + "text": "Example of a BTC receiving address.", + "tagName": "p", + "path": "komodo-wallet/mobile/view-your-receiving-address-to-send-funds-for-trading", + "closestElementReference": "how-to-view-your-receiving-address-to-send-funds-for-trading" + } + ], + "komodo-wallet/mobile/withdraw-or-send-funds": [ + { + "text": "How to Withdraw or Send Funds Using Komodo Mobile Wallet", + "tagName": "h1", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "On the \"Portfolio\" page, click on the coin you want to send and press the \"SEND\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "Enter the amount and the destination address", + "tagName": "li", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "You can also use a QR scanner by pressing on the camera icon on left.", + "tagName": "p", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "Then press on the \"WITHDRAW\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "On the next screen you will be shown details of your transaction.", + "tagName": "p", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "If you are satisfied with the details, press the \"CONFIRM\" button", + "tagName": "li", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "Once your transaction is completed you will see a \"Success!\" message.", + "tagName": "p", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + }, + { + "text": "You may check the block explorer of your coin to verify the transaction, if you like.", + "tagName": "p", + "path": "komodo-wallet/mobile/withdraw-or-send-funds", + "closestElementReference": "how-to-withdraw-or-send-funds-using-komodo-mobile-wallet" + } + ], + "notary/generate-privkeys-for-third-party-coins-from-passphrase": [ + { + "text": "How to Generate Address and Private Key (WIF) for 3rd Party Coins Using Passphrase", + "tagName": "h1", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "While this guide is intended for Notary Node operators, other users may find it useful too.", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "Never enter your Notary Node's passphrase into any other computer/server other than your node itself for security purposes.", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "For Notary Nodes, we will need ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "Compressed Public Key", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": " as pubkey, ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "Compressed WIF", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": " as private key and ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "Compressed Address", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": " as the public address.", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "how-to-generate-address-and-private-key-wif-for-3rd-party-coins-using-passphrase" + }, + { + "text": "Install dependencies", + "tagName": "h2", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "install-dependencies" + }, + { + "text": "Steps", + "tagName": "h2", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Clone the repo: ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "https://github.com/DeckerSU/komodo_scripts", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "https://github.com/DeckerSU/komodo_scripts", + "tagName": "a", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Open ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "genkomodo.php", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " for editing with ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "nano genkomodo.php", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Open ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "genkomodo.php", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " for editing with ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "nano genkomodo.php", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "To get generate private keys for other coins using your passphrase, change the value on the line ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "$passphrase = \"myverysecretandstrongpassphrase_noneabletobrute\"", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": ". Change only the content inside ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "\"\"", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " i.e., replace ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "myverysecretandstrongpassphrase_noneabletobrute", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " with your passphrase.", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "To get generate private keys for other coins using your passphrase, change the value on the line ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "$passphrase = \"myverysecretandstrongpassphrase_noneabletobrute\"", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": ". Change only the content inside ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " i.e., replace ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "myverysecretandstrongpassphrase_noneabletobrute", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " with your passphrase.", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Alternatively, to generate private keys for other coins using KMD private key, uncomment the following line, and replace the private key with your own. ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "// $bitcoinECDSA->setPrivateKeyWithWif(\"Uqe8cy26KvC2xqfh3aCpKvKjtoLC5YXiDW3iYf4MGSSy1RgMm3V5\"); ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Alternatively, to generate private keys for other coins using KMD private key, uncomment the following line, and replace the private key with your own. ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "// $bitcoinECDSA->setPrivateKeyWithWif(\"Uqe8cy26KvC2xqfh3aCpKvKjtoLC5YXiDW3iYf4MGSSy1RgMm3V5\"); ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Next, execute the command: ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "php genkomodo.php", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " to generate the private keys", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Next, execute the command: ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "php genkomodo.php", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " to generate the private keys", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Copy and import your private keys (Compressed WIF) into their respective chains, then delete your passphrase from ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "genkomodo.php", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " for security purposes.", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Copy and import your private keys (Compressed WIF) into their respective chains, then delete your passphrase from ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "genkomodo.php", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": " for security purposes.", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "steps" + }, + { + "text": "Example Output", + "tagName": "h2", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "example-output" + }, + { + "text": "Private Key Conversion in Python", + "tagName": "h2", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "The python script below will return converted Private Keys for all coins with a known ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "wiftype", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": " prefix (or a specific coin if set via runtime param).\nIf the coin you need to convert is not yet available, you need to find the relevant values in the project's source code, e.g. ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/blob/810d308d0792a560f05937b7989b6868381c1dc8/src/chainparams.cpp#L197-L199", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "\nThen PR these values to ", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "https://github.com/KomodoPlatform/coins/blob/master/coins", + "tagName": "p", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/blob/810d308d0792a560f05937b7989b6868381c1dc8/src/chainparams.cpp#L197-L199", + "tagName": "a", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "https://github.com/KomodoPlatform/coins/blob/master/coins", + "tagName": "a", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "private-key-conversion-in-python" + }, + { + "text": "Install Dependencies", + "tagName": "h3", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "install-dependencies-2" + }, + { + "text": "Create Script", + "tagName": "h3", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": "Open a file for editing with ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": "nano convert_private_keys.py", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": " and input the code below", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": "Make the script executable with ", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": "chmod +x convert_private_keys.py", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "create-script" + }, + { + "text": "Example Output", + "tagName": "h3", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "example-output-2" + }, + { + "text": "Run the script, and enter your private key when prompted.", + "tagName": "li", + "path": "notary/generate-privkeys-for-third-party-coins-from-passphrase", + "closestElementReference": "example-output-2" + } + ], + "notary": [ + { + "text": "Setup Komodo Notary Node", + "tagName": "h1", + "path": "notary", + "closestElementReference": "setup-komodo-notary-node" + }, + { + "text": "NN Repo Quick Reference", + "tagName": "h2", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "This guide serves to offer notary operators a reference for building a Komodo Notary Node server. It is possible that some instructions could be deprecated by the time you read it (e.g. coin commit hashes) - please refer to ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/tree/master/doc", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": " for more recent updates.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/tree/master/doc", + "tagName": "a", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Traditionally, Komodo Notary Nodes have been setup using a \"Main\" and \"Third party\" server. The \"Main\" server is used to notarize KMD and Antara smart chains, and the \"Third party\" server is used to notarize coins from external projects.\nBeginning in season 7, the Komodo Notary Node network will allow running the old \"Third party\" node on the same server as the \"Main\" node. Though operators may use alternative methods of virtualisation such as proxmox, this guide will focus on using docker containers to run the \"Third party\" daemons.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "The steps for setting up your nodes are as follows:", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Secure your Server", + "tagName": "li", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Install KMD and LTC Deamons, then launch them, import the private key linked to your \"Main\" elected pubkey, and let them sync. and let them sync (this may take a couple of days).", + "tagName": "li", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Launch the other \"Main\" server chains, import the private key linked to your \"Main\" elected pubkey, and let them sync.", + "tagName": "li", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Setup the 3rd Party docker containers, import the private key linked to your \"3P\" elected pubkey, and let them sync.", + "tagName": "li", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Install and configure Iguana", + "tagName": "li", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Some additional tips will be included at the end of the guide to help with node management and maintainence.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "If you face problems, please join the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "#notarynode", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": " channel on the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Komodo Discord Server", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": " for help.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Komodo Discord Server", + "tagName": "a", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "We recommend the Notary Node Operators to check the Table at ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/tree/season-seven#dpow-asset-status", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": " for latest information on the repositories and branches/commits to use for installing chains. If there is contradicting information in this document, treat the information within the dPoW reopsitory as the point of truth. Using the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "exact", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": " repository and branch/tag listed is very important for the security of the network.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/tree/season-seven#dpow-asset-status", + "tagName": "a", + "path": "notary", + "closestElementReference": "nn-repo-quick-reference" + }, + { + "text": "Minimum System Requirements", + "tagName": "h2", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "Notary nodes ", + "tagName": "p", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "must", + "tagName": "p", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": " be run on a dedicated server in a Tier 3 datacenter. Running on a local desktop PC or VPS is not allowed. The minimum system requirements are as follows:", + "tagName": "p", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "OS:", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": " Debian/Ubuntu LTS x64 - minimal installation with Openssh server (recommended).", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "CPU:", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": " A High-Performance CPU (e.g. Xeon, i7/i9, Ryzen, EPYC, etc.) with 8+ Cores", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "RAM:", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": " 64GB+ RAM", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "HDD:", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": " 1TB+ (SSD is recommended)", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "Bandwidth", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": ": 100 Mbps or higher", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "Location", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": ": Within the region where you were elected.", + "tagName": "li", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "This guide assumes you are using Ubuntu 20.04 LTS. If using Debian 11, scroll to the bottom of this guide for notes on required dependencies and build scripts.", + "tagName": "p", + "path": "notary", + "closestElementReference": "minimum-system-requirements" + }, + { + "text": "Creating notary pubkeys", + "tagName": "h2", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "Once you have been elected as a notary node operator, you will need to generate your notary pubkeys and register them with the Komodo Team via your proposal on ", + "tagName": "p", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "https://github.com/KomodoPlatform/NotaryNodes", + "tagName": "p", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": " soon after the election, so they can be included in the Komodo codebase for the next hardfork.", + "tagName": "p", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "https://github.com/KomodoPlatform/NotaryNodes", + "tagName": "a", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "Notary node operators have to provide 2 seperate pubkeys, one for your Main Server and one for your 3rd Party Server. This means you will have to generate 2 seed phrases (i.e passphrases) individually which will each be linked to a pubkey, and a set of addresses and private keys (WIF).", + "tagName": "p", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "DO NOT IMPORT YOUR MAIN PUBKEY INTO ANY 3RD PARTY DAEMON. For security, you should never enter your seed phrase or private key in any other node than your specific notary node server. If you ever expose a private key for any particular coin, it can be converted to all other coins easily.", + "tagName": "p", + "path": "notary", + "closestElementReference": "creating-notary-pubkeys" + }, + { + "text": "Generating a pubkey", + "tagName": "h3", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "Your pubkey will start with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "02", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": " or ", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "03", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": ". Follow ", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "this guide", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": " to generate all the required info in your own server. You will need the \"Compressed Public Key\", \"Compressed WIF\" and \"Compressed Address\" from the output generated by the script. Based on the default seed used in the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "genkomodo.php", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": " file, we get the following information:", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "this guide", + "tagName": "a", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "CHIPS, all Komodo Smart Chains and Komodo source forks like MCL, TOKEL and VRSC use the same address and WIF format as Komodo (KMD).", + "tagName": "p", + "path": "notary", + "closestElementReference": "generating-a-pubkey" + }, + { + "text": "Do not keep your seed phrase or private keys saved in your local computer! Never import it into any other apps!", + "tagName": "h3", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "If your notary seed or private keys are compromised, it not only places your server and notary funds at risk, but may also compromise the security of the entire dPoW network. ", + "tagName": "p", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "If you ever suspect that your seed or private keys have been compromised, you should immediately contact the Komodo Team so steps can be taken to mitigate any potential threats.", + "tagName": "p", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "It is recommended that you write down the randomly generated seed (24 words) in a piece of paper (or use a rugged physical backup like CryptoSteel), then type directly into your server, or generate the seed phrase on the server itself with a tool like ", + "tagName": "p", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "https://github.com/smk762/DragonhoundTools/blob/master/wallet/gen_seed.py", + "tagName": "p", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": ".", + "tagName": "p", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "https://github.com/smk762/DragonhoundTools/blob/master/wallet/gen_seed.py", + "tagName": "a", + "path": "notary", + "closestElementReference": "do-not-keep-your-seed-phrase-or-private-keys-saved-in-your-local-computer-never-import-it-into-any-other-apps" + }, + { + "text": "Security", + "tagName": "h2", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Before doing anything further, ensure that your server is secure.", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "In the examples below, I will use the username ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "dragonhound", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ". Please replace this with your own username.\nMake sure to use a password manager like ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "KeePassXC", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " to generate and store your sudo passwords an SSH keys, and backup your password database to a secure location so you dont lose access to your server if your desktop/laptop fails.", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "KeePassXC", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Update the system", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ": ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo apt-get update && sudo apt-get upgrade -y", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Update the system", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ": ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo apt-get update && sudo apt-get upgrade -y", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a new user & give it ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " permissions", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ":", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "adduser dragonhound # to add a new user\npasswd dragonhound # set a password for new user\nusermod -aG sudo dragonhound # to give the user sudo permissions\nsu - dragonhound # to switch to the new user\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a new user & give it ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " permissions", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ":", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a new user & give it ", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " permissions", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Install ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Fail2ban", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo apt install fail2ban", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ". It will start automatically after installation.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Install ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Fail2ban", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo apt install fail2ban", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ". It will start automatically after installation.", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Fail2ban", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Install ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "UFW", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (make sure to allow SSH access ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "before", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " enabling the firewall).", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo apt install ufw\nsudo ufw allow OpenSSH\nsudo ufw enable\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Install ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "UFW", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (make sure to allow SSH access ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "before", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " enabling the firewall).", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "UFW", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create an SSH key", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " on your PC, then add the public SSH key to the server. This will allow you to login without a password. Repeat this step for each device you will use to access the server. For example:", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create an ED25519 SSH key (e.g. on your laptop) with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh-keygen -t ed25519 -C \"dragonhound@laptop\"", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "View the public key with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "cat ~/.ssh/id_ed25519.pub", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "It will look like ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh-ed25519 AAAAC3NzaC1lZD42STE5AAAAIK0wmN/Cr3JXqmLW7u+g9pTh+wyqDHpSQEIQczXkVx9q dragonhound@laptop", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create an SSH key", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " on your PC, then add the public SSH key to the server. This will allow you to login without a password. Repeat this step for each device you will use to access the server. For example:", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create an SSH key", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create an ED25519 SSH key (e.g. on your laptop) with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh-keygen -t ed25519 -C \"dragonhound@laptop\"", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "View the public key with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "cat ~/.ssh/id_ed25519.pub", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "It will look like ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh-ed25519 AAAAC3NzaC1lZD42STE5AAAAIK0wmN/Cr3JXqmLW7u+g9pTh+wyqDHpSQEIQczXkVx9q dragonhound@laptop", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Add the SSH key to your server", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ":", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "On the server, create a ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " folder in your home directory with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "mkdir ~/.ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a file to contain authorized keys with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "nano ~/.ssh/authorized_keys", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Paste the public key into the file, then save and exit.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restrict file permissions with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 600 ~/.ssh/authorized_keys", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 700 ~/.ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "To confirm that the key works, open a new terminal on your desktop/laptop and run ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh dragonhound@", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ". If everything is working, you should be logged in without being asked for a password.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Add the SSH key to your server", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ":", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "On the server, create a ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " folder in your home directory with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "mkdir ~/.ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a file to contain authorized keys with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "nano ~/.ssh/authorized_keys", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Paste the public key into the file, then save and exit.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restrict file permissions with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 600 ~/.ssh/authorized_keys", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 700 ~/.ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "To confirm that the key works, open a new terminal on your desktop/laptop and run ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh dragonhound@", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ". If everything is working, you should be logged in without being asked for a password.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable password authentication", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Make sure you have added your SSH key to the server and confirmed it is working before doing this!", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the SSH daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Find the line that says ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "#PasswordAuthentication yes", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and change it to ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "PasswordAuthentication no", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " then save and exit the file.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restart the SSH daemon with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable password authentication", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable password authentication", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Make sure you have added your SSH key to the server and confirmed it is working before doing this!", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the SSH daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Find the line that says ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "#PasswordAuthentication yes", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and change it to ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "PasswordAuthentication no", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " then save and exit the file.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restart the SSH daemon with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "root", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " login", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the SSH daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Set ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "PermitRootLogin no", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " then save and exit the file", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restart the SSH daemon with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable ", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "root", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " login", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Disable ", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "root", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " login", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the SSH daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Set ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "PermitRootLogin no", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " then save and exit the file", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restart the SSH daemon with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Add 32GB of swap space", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "View existing swap space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon --show", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ", existing physical an virtual memory with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "free -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ", and disk space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "df -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a 32GB swap file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo fallocate -l 32G /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restrict swap file permissions to root only with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 600 /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Mark the file as swap space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo mkswap /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Activate the swap file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Verify that the swap space is active with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon --show", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "free -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "To make the swap file permanent, we'll edit the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " file.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "First, backup the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo cp /etc/fstab /etc/fstab.bak", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Update it with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Now your swap space should be retained after rebooting.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Add 32GB of swap space", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Add 32GB of swap space", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "View existing swap space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon --show", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ", existing physical an virtual memory with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "free -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ", and disk space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "df -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Create a 32GB swap file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo fallocate -l 32G /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Restrict swap file permissions to root only with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo chmod 600 /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Mark the file as swap space with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo mkswap /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Activate the swap file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon /swapfile", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Verify that the swap space is active with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo swapon --show", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "free -h", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "To make the swap file permanent, we'll edit the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " file.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "First, backup the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo cp /etc/fstab /etc/fstab.bak", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Update it with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "First, backup the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo cp /etc/fstab /etc/fstab.bak", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Update it with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Now your swap space should be retained after rebooting.", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Change the SSH port", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (optional, but recommended)", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the ssh daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Change the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Port", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " value to something other than ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "22", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (e.g. ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Port 2222", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ")", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Allow the new port in the firewall ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo ufw allow 2222 comment ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Save and exit the file, then restart the SSH service with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Test the new port with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh dragonhound@ -p 2222", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Change the SSH port", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (optional, but recommended)", + "tagName": "p", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Change the SSH port", + "tagName": "a", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Open the ssh daemon config file with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo nano /etc/ssh/sshd_config", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Change the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Port", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " value to something other than ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "22", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": " (e.g. ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Port 2222", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": ")", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Allow the new port in the firewall ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo ufw allow 2222 comment ssh", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Save and exit the file, then restart the SSH service with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "sudo systemctl restart sshd", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Test the new port with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "ssh dragonhound@ -p 2222", + "tagName": "li", + "path": "notary", + "closestElementReference": "security" + }, + { + "text": "Additional Configuration Tweaks", + "tagName": "h2", + "path": "notary", + "closestElementReference": "additional-configuration-tweaks" + }, + { + "text": "The steps below are optional, but recommended to give your node a better chance of performing well based on the experiences of prior season Natary Node Operators.", + "tagName": "p", + "path": "notary", + "closestElementReference": "additional-configuration-tweaks" + }, + { + "text": "Set ", + "tagName": "h3", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "ulimit", + "tagName": "h3", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": " parameters on Ubuntu permanently", + "tagName": "h3", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "By default, the number of open files per user in Ubuntu is 1024. In our case this number is too small so we will increase it.", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "This is done with the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "ulimit", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": " command:", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "This will only set the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "ulimit", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": " parameters for the current command terminal and user, meaning that after a reboot you’ll need to set the parameter again. Do the following to set it permanently:", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Edit the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "/etc/security/limits.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": " file", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "sudo nano /etc/security/limits.conf\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Edit the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "/etc/security/limits.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": " file", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Add these lines:", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "* soft nofile 1000000\n* hard nofile 1000000\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Add these lines:", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Save and close file", + "tagName": "li", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Save and close file", + "tagName": "p", + "path": "notary", + "closestElementReference": "parameters-on-ubuntu-permanently" + }, + { + "text": "Set ", + "tagName": "h3", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "pam_limits", + "tagName": "h3", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " to ", + "tagName": "h3", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "required", + "tagName": "h3", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Linux uses PAM (pluggable authentication modules) in the authentication process as a layer that mediates between user and application. The ", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "pam_limits", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " PAM module sets limits on the system resources that can be obtained in a user-session.", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Edit the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "/etc/pam.d/common-session", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " file", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "sudo nano /etc/pam.d/common-session\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Edit the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "/etc/pam.d/common-session", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " file", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Add this line:", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "session required pam_limits.so\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Add this line:", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Save and close the file.", + "tagName": "li", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Save and close the file.", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "We're done! Now let's stop all our wallet daemons safely with RPC commands and reboot the server using ", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "sudo reboot", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " or ", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "sudo shutdown -r", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " command. After the reboot, log back in and check the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "ulimit", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": " parameters again.", + "tagName": "p", + "path": "notary", + "closestElementReference": "required" + }, + { + "text": "Install Iguana & Coin Daemons", + "tagName": "h2", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "The daemons will take a couple of days to sync, so it's best to get them started as soon as possible. If you encounter any errors, please join the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "#notarynode", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": " channel on the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "Komodo Discord Server", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": " for help.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "Komodo Discord Server", + "tagName": "a", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "-j$(nproc)", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": " uses all the available processor threads while compiling. If you don't want to use all threads, you may specify the number directly like so: ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "-j8", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": " will use only 8 threads. Alternatively, you may like to use ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "-j$(expr $(nproc) - 1)", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": ", which will use all the available processors except one.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "Install dependencies:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python3 python3-zmq zlib1g-dev wget libcurl4-gnutls-dev bsdmainutils automake curl libsodium-dev jq libfmt-dev autotools-dev cmake clang htop libevent-dev libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libssl-dev libnanomsg-dev -y\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "Install dependencies:", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana-and-coin-daemons" + }, + { + "text": "Install Iguana", + "tagName": "h2", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Iguana is the software used to perform notarizations, and needs to be installed from the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "dPoW", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " repository.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "dPoW", + "tagName": "a", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Clone the dPoW repository and build Iguana", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "cd ~\n# Clone repository\ngit clone https://github.com/KomodoPlatform/dPoW -b season-seven\ncd dPoW/iguana\n\n# Build Iguana\nmake\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Clone the dPoW repository and build Iguana", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Create pubkey files", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":\nIguana will reference these files when launching to validate your node as an elected notary.", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "echo \"pubkey=\" > ~/dPoW/iguana/pubkey.txt\necho \"pubkey=\" > ~/dPoW/iguana/pubkey_3p.txt\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Create pubkey files", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":\nIguana will reference these files when launching to validate your node as an elected notary.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Create ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "wp", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " files", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "These files will be used to unlock your wallets when Iguana launches, and are named according to the iguana port they are targeting. The contents will include your seed phrase (or a private key) from the Main or 3P coins you want to unlock for notarisation.", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "The Main Iguana uses port 7776. Create a file called ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "~/dPoW/iguana/wp_7776", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " and add the contents as below:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Create ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "wp", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " files", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": ":", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "These files will be used to unlock your wallets when Iguana launches, and are named according to the iguana port they are targeting. The contents will include your seed phrase (or a private key) from the Main or 3P coins you want to unlock for notarisation.", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "The Main Iguana uses port 7776. Create a file called ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "~/dPoW/iguana/wp_7776", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " and add the contents as below:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "The Third Party Iguana uses port 7779. Create a file called ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "~/dPoW/iguana/wp_7779", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": " and add the contents as below:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Restrict file permissions and make executable:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-iguana" + }, + { + "text": "Install KMD", + "tagName": "h2", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Go to home folder ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "cd ~", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Go to home folder ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "cd ~", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Clone repo: ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "git clone https://github.com/KomodoPlatform/komodo -b master", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Clone repo: ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "git clone https://github.com/KomodoPlatform/komodo -b master", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Enter repo folder ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "cd komodo", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Enter repo folder ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "cd komodo", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Fetch Zcash params: ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "./zcutil/fetch-params.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Fetch Zcash params: ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "./zcutil/fetch-params.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Build Komodo: ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "./zcutil/build.sh -j$(nproc)", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Build Komodo: ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "./zcutil/build.sh -j$(nproc)", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Create the data folder and a ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " config file", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "cd ~\nmkdir .komodo\nnano ~/.komodo/komodo.conf\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Add the following lines to the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " file and save it (replace rpcuser and rpcpassword)", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "rpcuser=usernameChangeItToSomethingSecure\nrpcpassword=passwordChangeItToSomethingSecure\ntxindex=1\naddressindex=1\nspentindex=1\nserver=1\ndaemon=1\nrpcworkqueue=256\nrpcbind=127.0.0.1\nrpcallowip=127.0.0.1\nport=7770\nrpcport=7771\naddnode=15.235.204.174 # Dragonhound_AR\naddnode=209.222.101.247 # Dragonhound_NA\naddnode=103.195.100.32 # Dragonhound_DEV\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Restrict access to the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " file", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "chmod 600 ~/.komodo/komodo.conf\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "symlink pubkey files to komodo directory:", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "ln -s ~/dPoW/iguana/pubkey.txt ~/komodo/src/pubkey.txt\nln -s ~/dPoW/iguana/pubkey_3p.txt ~/komodo/src/pubkey_3p.txt\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Create the data folder and a ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " config file", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Add the following lines to the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " file and save it (replace rpcuser and rpcpassword)", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Restrict access to the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": " file", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "symlink pubkey files to komodo directory:", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-kmd" + }, + { + "text": "Install LTC", + "tagName": "h2", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Clone repo: ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "git clone https://github.com/litecoin-project/litecoin -b 0.16", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Clone repo: ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "git clone https://github.com/litecoin-project/litecoin -b 0.16", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Enter repo folder ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "cd litecoin", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Enter repo folder ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "cd litecoin", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Create ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "build.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " script with the following contents and give it executable permissions (", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "chmod +x build.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": ")", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "#!/bin/bash\n# LTC & 3P Coins build script for Ubuntu & Debian (c) Decker\nmake -C ${PWD}/depends v=1 NO_PROTON=1 NO_QT=1 HOST=$(depends/config.guess) -j$(nproc --all)\n\n./autogen.sh\n\nCXXFLAGS=\"-g0 -O2\" \\\nCONFIG_SITE=\"$PWD/depends/$(depends/config.guess)/share/config.site\" ./configure --disable-tests --disable-bench --without-miniupnpc --enable-experimental-asm --with-gui=no --disable-bip70\n\nmake V=1 -j$(nproc --all)\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Create ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "build.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " script with the following contents and give it executable permissions (", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "chmod +x build.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": ")", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Execute ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "./build.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " to compile the Litecoin binaries.", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Execute ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "./build.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " to compile the Litecoin binaries.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Create the data folder and a ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " config file", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "cd ~\nmkdir .litecoin\nnano ~/.litecoin/litecoin.conf\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Create the data folder and a ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " config file", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Insert the following contents inside the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " file and save it. (change the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "rpcuser", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "rpcpassword", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " values)", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "txindex=1\nrpcport=9332\nrpcuser=litecoinrpcChangeThisToSomethingSecure\nrpcpassword=passwordChangeThisToSomethingSecure\naddnode=15.235.204.174 # Dragonhound_AR\naddnode=209.222.101.247 # Dragonhound_NA\naddnode=103.195.100.32 # Dragonhound_DEV\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Insert the following contents inside the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " file and save it. (change the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " and ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " values)", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Restrict access to the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " file and ", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": ".litecoin", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " directory.", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "chmod 600 ~/.litecoin/litecoin.conf\nchmod 700 ~/.litecoin\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Restrict access to the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "litecoin.conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " file and ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": ".litecoin", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": " directory.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-ltc" + }, + { + "text": "Install Third Party coins daemons in Docker", + "tagName": "h2", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": "Follow the instructions in ", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": "https://github.com/smk762/notary_docker_3p#notary_docker_3p", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": " to setup the third party coins in docker.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": "https://github.com/smk762/notary_docker_3p#notary_docker_3p", + "tagName": "a", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": "If you need help, please reach out to the Komodo Discord #notary-node channel.", + "tagName": "p", + "path": "notary", + "closestElementReference": "install-third-party-coins-daemons-in-docker" + }, + { + "text": "Create Symbolic Links for deamons and cli's", + "tagName": "h2", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": "For the Main coins", + "tagName": "li", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": ":", + "tagName": "li", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": "sudo ln -s ~/komodo/src/komodod /usr/local/bin/komodod\nsudo ln -s ~/komodo/src/komodo-cli /usr/local/bin/komodo-cli\nsudo ln -s ~/litecoin/src/litecoind /usr/local/bin/litecoind\nsudo ln -s ~/litecoin/src/litecoin-cli /usr/local/bin/litecoin-cli\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": "For the Main coins", + "tagName": "p", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": ":", + "tagName": "p", + "path": "notary", + "closestElementReference": "create-symbolic-links-for-deamons-and-clis" + }, + { + "text": "Launch the daemons", + "tagName": "h2", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "First, create a start script with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "nano start.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " to start the main chains with:", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "#!/bin/bash\n\n# Get our pubkey\nsource ~/komodo/src/pubkey.txt\n\n# Start LTC\nlitecoind &\nsleep 60\n\n# Start KMD\nkomodod -gen -genproclimit=1 -pubkey=$pubkey -minrelaytxfee=0.000035 -opretmintxfee=0.004 -notary=\".litecoin/litecoin.conf\" &\nsleep 600\n\n# Start all other Main Smart Chains\ncd ~/dPoW/iguana\n./assetchains.old\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "First, create a start script with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "nano start.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " to start the main chains with:", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Save and exit the file, then make it executable with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "chmod +x start.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ". Now you can launch all the main chains with ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "./start.sh", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "!", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Save and exit the file, then make it executable with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "chmod +x start.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ". Now you can launch all the main chains with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "./start.sh", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "!", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Launch the 3P dockerised daemons:", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "cd ~/notary_docker_3p\n\n# To launch all deamons at once\ndocker-compose up -d\n\n# To launch a single coins deamon (use lowercase ticker)\ndocker-compose up -d\n\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Launch the 3P dockerised daemons:", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Import your private keys", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " to each coin daemon. Ensure that a space is added at the beginning of each command to prevent the key being saved to ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "~/.bash_history", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Import your private keys", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " to each coin daemon. Ensure that a space is added at the beginning of each command to prevent the key being saved to ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "~/.bash_history", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ".", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "eg, ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "komodo-cli importprivkey ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " will be saved to bash history, but ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " komodo-cli importprivkey ", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " will not.", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "# For Komodo\n komodo-cli importprivkey \n\n# For Litecoin\n litecoin-cli importprivkey \n\n# For individual main smart chains (replace with the smart chain ticker)\n komodo-cli -ac_name= importprivkey \n\n# For all main smart chains\ncd ~/dPoW/iguana\n./listassetchains | while read chain; do\n echo $chain\n komodo-cli -ac_name=$chain importprivkey \ndone\n\n# For 3P deamons\n\"Use the 3rd party coins' cli binaries to import the private keys for each coin.\"\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "eg, ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "komodo-cli importprivkey ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " will be saved to bash history, but ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " komodo-cli importprivkey ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " will not.", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Check the sync status", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "# Check the status of the KMD sync process\ntail -f ~/.komodo/debug.log\n\n# Check the status of the LTC sync process\ntail -f ~/.litecoin/debug.log\n\n# Check the status of the Main smart chain sync process\ntail -f ~/.komodo//debug.log\n\n# Check the status of the 3P smart chain sync process (use lowercase ticker)\ncd ~/notary_docker_3p\ndocker compose logs -f --tail 20\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Check the sync status", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "The debug.log will have lines like:", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "2023-06-15 09:08:05 UpdateTip: new best=0c01379c24db5055444983d447ce5af58a9ed50072b4a08a3fec0b151cf51213 height=3463643 log2_work=53.293613 tx=20987955 date=2023-06-15 09:08:06 progress=1.000000 cache=43.6MiB(143561tx)", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "When you see ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "progress=1.000000", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ", the chain is in sync! This can take a while, so be patient.", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Once sync'd, we can confirm our private keys were correctly imported by using the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": " command with the KMD address linked to our private key. For example:", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "This will return a JSON object with the address details. If the address is valid, you will see ", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "\"ismine\": true", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": ".", + "tagName": "p", + "path": "notary", + "closestElementReference": "launch-the-daemons" + }, + { + "text": "Komodo DeFi Framework Seed node setup (optional, but recommended)", + "tagName": "h2", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "Simple scripts to setup and configure MM2 as a seednode on your 3P server are available at ", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "https://github.com/smk762/nn_mm2_seed", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": ". The mm2 seed node will also need ports ", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "38890", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": " and ", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "38900", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": " opened on the 3p server.", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "https://github.com/smk762/nn_mm2_seed", + "tagName": "a", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "This may be included in the 3P dockerised setup in the future.", + "tagName": "p", + "path": "notary", + "closestElementReference": "komodo-de-fi-framework-seed-node-setup-optional-but-recommended" + }, + { + "text": "Stop All Coin Daemons Safely", + "tagName": "h2", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "Once you've completed syncing, imported and validated your keys in all your daemons, we'll stop all the daemons for some final configuration.", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "Unless you are a fan of corrupt databases, ", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "never", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": " use ", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "kill -9", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": " to stop any Coin daemon. Always shutdown wallet daemon and iguana gracefully with ", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "pkill -15 iguana", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": " or use the commands below.", + "tagName": "p", + "path": "notary", + "closestElementReference": "stop-all-coin-daemons-safely" + }, + { + "text": "Restrict access to config files", + "tagName": "h2", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": "Once all the chains' daemons have stopped, let's restrict access to all the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": ".conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": " files inside ", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": "~/.komodo", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": " and ", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": "~/.komodo_3p", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": " folders", + "tagName": "p", + "path": "notary", + "closestElementReference": "restrict-access-to-config-files" + }, + { + "text": "Address whitelisting (optional, but recommended)", + "tagName": "h2", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "If you are using a whitelist for incoming transactions (recommended to avoid dust attacks!) funding top ups will come from the dragonhound_DEV nodes using the addresses ", + "tagName": "p", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "RHi882Amab35uXjqBZjVxgEgmkkMu454KK", + "tagName": "p", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": " (Main), and ", + "tagName": "p", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "RLdmqsXEor84FC8wqDAZbkmJLpgf2nUSkq", + "tagName": "p", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": " (3P), so add these addresses to your respective whitelists. This can be done by:", + "tagName": "p", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "Adding ", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "-whitelistaddress=
", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": " to your daemon launch strings, or", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "Adding ", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "whitelistaddress=
", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": " to your daemon ", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": " files", + "tagName": "li", + "path": "notary", + "closestElementReference": "address-whitelisting-optional-but-recommended" + }, + { + "text": "Create ", + "tagName": "h2", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "h2", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " Script", + "tagName": "h2", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "We need a ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " script in the home dir to start Komodo, Smart Chains and all 3rd party coin daemons with the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " option. ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " is not required for LTC daemon, but other coins ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "must", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " be launched with it to be able to notarise.", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "You can also use the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "setpubkey", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " command to set the pubkey for a running daemon. For example:", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "komodo-cli setpubkey \n", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "You can also use the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "setpubkey", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " command to set the pubkey for a running daemon. For example:", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Alternatively, you can set the pubkey in your ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file to make sure it is set every time you launch a daemon. For example:", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "echo \"pubkey=\" >> ~/.komodo/komodo.conf\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Alternatively, you can set the pubkey in your ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "conf", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file to make sure it is set every time you launch a daemon. For example:", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Create and open a ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "nano ~/start\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Create and open a ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Add the following lines:", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "#!/bin/bash\n\n# Get our pubkey\nsource ~/komodo/src/pubkey.txt\n\n# Start LTC\nlitecoind &\nsleep 60\n\n# Start KMD\nkomodod -gen -genproclimit=1 -pubkey=$pubkey -minrelaytxfee=0.000035 -opretmintxfee=0.004 -notary=\".litecoin/litecoin.conf\" &\nsleep 600\n\n# Start all other Main Smart Chains\ncd ~/dPoW/iguana\n./assetchains.old\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Add the following lines:", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Make the ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file executable:", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "chmod +x start\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Make the ", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "start", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file executable:", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Note the KMD launch string includes some extra parameters:", + "tagName": "p", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-gen", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " - enables mining", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-genproclimit=1", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " - sets the number of threads to use for mining", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-minrelaytxfee=0.000035", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " - sets the minimum relay fee for transactions", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-opretmintxfee=0.004", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " - sets the minimum fee for OP_RETURN transactions", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "-notary=\".litecoin/litecoin.conf\"", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " - sets the location of the notary node's ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "litecoin.conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": " file. ", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "This is required to be able to notarise KMD -> LTC.", + "tagName": "li", + "path": "notary", + "closestElementReference": "script" + }, + { + "text": "Execute the ", + "tagName": "h3", + "path": "notary", + "closestElementReference": "script-2" + }, + { + "text": "start", + "tagName": "h3", + "path": "notary", + "closestElementReference": "script-2" + }, + { + "text": " script", + "tagName": "h3", + "path": "notary", + "closestElementReference": "script-2" + }, + { + "text": "This may take up to 20-30 minutes before all chains are responsive (depending on your system spec).", + "tagName": "p", + "path": "notary", + "closestElementReference": "script-2" + }, + { + "text": "Don't forget to also restart the dockerised 3rd party daemons.", + "tagName": "p", + "path": "notary", + "closestElementReference": "script-2" + }, + { + "text": "Start ", + "tagName": "h2", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Iguana", + "tagName": "h2", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": " and begin notarising", + "tagName": "h2", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Notaries are responsible funding their Notary KMD addresses - funds for other chains will be provided from the Komodo team.", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "All notary addresses on all dPoW coins (except KMD) will be funded at the start of a season, and periodically topped up as the season progresses.", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Please contact ", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "smk", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": " on Discord if you need a top up.", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Notary funds are for notarisation only, and should not leave your notary addresses for any other purpose.", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "At the end of the season, any remaining funds are to be returned to ", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "smk", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": " for redistribution to the notaries elected for the next season.", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Make sure all daemons have started properly and are responding to RPC commands before starting Iguana.", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "To start notarising the Main coins, run:", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "cd ~/dPoW/iguana\n./m_notary_main\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "To start notarising the Main coins, run:", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "To start notarising the 3rd party coins, run:", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "cd ~/dPoW/iguana\n./m_notary_3rdparty_docker\n", + "tagName": "li", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "To start notarising the 3rd party coins, run:", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "This will take a few minutes to add peer notaries, and register the coin daemons with Iguana. You will see ", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "INIT with 64 notaries", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": " once the process finishes.", + "tagName": "p", + "path": "notary", + "closestElementReference": "and-begin-notarising" + }, + { + "text": "Firewall and Ports", + "tagName": "h2", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Enable ", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "ufw", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": " and close all routes except ", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "ssh", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": ". Create rules to allow the following:", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Each daemon's P2P port. You can find these in the daemon's ", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "conf", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": " file, or by looking at the response from ", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "sudo netstat -plant", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": ".", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Iguana's Main P2P port (13348)", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Iguana's 3P P2P port (13345)", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Komodo DeFi Framework API P2P ports (38890 & 38900)", + "tagName": "li", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "For example:", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "Make sure you dont expose any RPC ports! This may give the whole internet access to your deamons!", + "tagName": "p", + "path": "notary", + "closestElementReference": "firewall-and-ports" + }, + { + "text": "NN Scripts", + "tagName": "h2", + "path": "notary", + "closestElementReference": "nn-scripts" + }, + { + "text": "There are many open sourced scripts for managing your Komodo Notary Node servers. If you're having trouble with something, you can have a look at ", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-scripts" + }, + { + "text": "these tools", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-scripts" + }, + { + "text": ", or ask the other NN's, who will show you the scripts they use to overcome issues. With that being said, if you find a way to make a job easier or find a way to better the ecosystem, please let the rest of the NN OPs know, we would love to hear it.", + "tagName": "p", + "path": "notary", + "closestElementReference": "nn-scripts" + }, + { + "text": "these tools", + "tagName": "a", + "path": "notary", + "closestElementReference": "nn-scripts" + }, + { + "text": "Setup for Debian 11", + "tagName": "h2", + "path": "notary", + "closestElementReference": "setup-for-debian-11" + }, + { + "text": "Install the following dependancies:", + "tagName": "p", + "path": "notary", + "closestElementReference": "setup-for-debian-11" + }, + { + "text": "Use the template below to create build scripts for coins as needed:", + "tagName": "p", + "path": "notary", + "closestElementReference": "setup-for-debian-11" + } + ], + "notary/split-utxo-for-notarization": [ + { + "text": "How to Split UTXO for Notarization", + "tagName": "h1", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "To participate in a notarisation round, you need to ensure you have enough UTXOs of the correct size available in your wallet. The best way to do this is via a split script in crontab.\nMost coins use UTXOs of ", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "0.0001", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": " value (10000 satoshis), but some third party projects like AYA, MIL & EMC2 require ", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "0.001", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": " value UTXOs (100000 satoshis).\nTo find out the correct size UTXO for each coin, check ", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/blob/master/iguana/dpow/dpow_rpc.c#L20", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/blob/master/iguana/dpow/dpow_rpc.c#L20", + "tagName": "a", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "how-to-split-utxo-for-notarization" + }, + { + "text": "Splitting with Iguana", + "tagName": "h2", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "splitting-with-iguana" + }, + { + "text": "Step 1: Create a script named ", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit" + }, + { + "text": "acsplit", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit" + }, + { + "text": "Add the following to the ", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit" + }, + { + "text": "acsplit", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit" + }, + { + "text": " file and save it.", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit" + }, + { + "text": "Step 2: Give executable permission to ", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit-2" + }, + { + "text": "acsplit", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "acsplit-2" + }, + { + "text": "Step 3: Split UTXO", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "step-3-split-utxo" + }, + { + "text": "Optional: Check existing UTXO count first", + "tagName": "h3", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "optional-check-existing-utxo-count-first" + }, + { + "text": "If you run a split script on cron, running it too often might cause your wallet to bloat up with excessive UTXOs. To avoid this, you can check the current UTXO count for the coin, and either skip or split as required.\nHere is an example:", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "optional-check-existing-utxo-count-first" + }, + { + "text": "Make sure you have confirmed balance in your address.\nDirectly mined UTXO will NOT work, you need to either send yourself the mined funds first or send funds from another address before splitting.", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "optional-check-existing-utxo-count-first" + }, + { + "text": "WebWorker's split tool", + "tagName": "h2", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "web-workers-split-tool" + }, + { + "text": "Alternatively you can use this script, which buids a raw transaction to perform the split - ", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "web-workers-split-tool" + }, + { + "text": "https://github.com/webworker01/nntools/blob/master/splitfunds", + "tagName": "p", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "web-workers-split-tool" + }, + { + "text": "https://github.com/webworker01/nntools/blob/master/splitfunds", + "tagName": "a", + "path": "notary/split-utxo-for-notarization", + "closestElementReference": "web-workers-split-tool" + } + ], + "notary/update-komodo-manually": [ + { + "text": "How to update Komodo (for Notary Nodes)", + "tagName": "h1", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Reboot your node (to start fresh).", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "If you have installed Komodo from it's source code already on your machine, and need to update to the latest version, follow the below steps.", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Please follow each step carefully and don't skip to the next one until the previous step is successfully completed. If you have the ", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "komodo daemon", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": " running, you can leave it running while updating if you have enough resources on your machine. If you prefer to stop it before updating, please use ", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": " to stop the daemon and proceed with the following steps to update.", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Navigate to your komodo directory", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Make sure you don't have any changes made to the source and reset it. This will ensure clean source and shouldn't create issues while pulling the latest source in the next step.", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Clean the source directory", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Update the source. (If you have any changes made to the source code, this command may not pull the latest source. Please make sure you have followed the previous steps)", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Compile the latest binary", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "Start your services as usual. If you didn't stop the deamon before compiling, please stop it using ", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": " and start again.", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-update-komodo-for-notary-nodes" + }, + { + "text": "How to resync", + "tagName": "h2", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "If you need to resync your Komodo chain from scratch, follow these steps:", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "Stop the Komodo daemon", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "Navigate to your ", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": ".komodo", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": " folder", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "Remove the following files and directories", + "tagName": "li", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "Go back to your home folder", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "Start Komodo and iguana as ", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "described in the setup doc", + "tagName": "p", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + }, + { + "text": "described in the setup doc", + "tagName": "a", + "path": "notary/update-komodo-manually", + "closestElementReference": "how-to-resync" + } + ], + "notary/useful-commands-for-komodo-notary-node": [ + { + "text": "Useful commands for Komodo Notary Node", + "tagName": "h1", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + }, + { + "text": "Create symbolic links for komodod and komodo-cli so you can use them anywhere in CLI.", + "tagName": "p", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + }, + { + "text": "Stop Komodo, Litecoin and Iguana at once", + "tagName": "p", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + }, + { + "text": "Update Komodo (be sure to stop Komodo first, see above)", + "tagName": "p", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + }, + { + "text": "Search for a specific pubkey in files (like: notaries.c, ratify(A,B,C)_7776 etc. etc.)", + "tagName": "p", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + }, + { + "text": "If you want to copy your full komodo blocks to a new node instead of downloading it again you can scp the files to the new node. THIS WILL TAKE A WHILE!", + "tagName": "p", + "path": "notary/useful-commands-for-komodo-notary-node", + "closestElementReference": "useful-commands-for-komodo-notary-node" + } + ], + "qa/adb-logcat": [ + { + "text": "Use adb to collect GUI logs of the Komodo mobile wallet android app", + "tagName": "h1", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "adb", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": " is a debug tool that can be used to collect logs and track down bugs in android apps running on a mobile device.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "adb", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "The following walkthrough describes the process to collect logs using adb.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "Some parts of this article are taken from the following stackexchange answer:\n", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "https://android.stackexchange.com/a/144967", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "https://android.stackexchange.com/a/144967", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "use-adb-to-collect-gui-logs-of-the-komodo-mobile-wallet-android-app" + }, + { + "text": "Preparing the android device", + "tagName": "h2", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "To enable USB debugging on the android device, go to ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Settings -› Development", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": ". If you don't have that entry in your settings menu, go to ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Settings -› About", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": ", scroll to the ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Build number", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": ", and tap it until your device congratulates you having become a developer.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Go back to the main page of the Settings menu, and close to the bottom you should see the \"Development\" (or \"Developers\") settings now. Enter it, and enable USB Debugging here.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Once the android device is ready, you have to connect it to your Computer to collect logs. Follow the instructions for your specific OS from the following sections.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "preparing-the-android-device" + }, + { + "text": "Linux/MacOS", + "tagName": "h2", + "path": "qa/adb-logcat", + "closestElementReference": "linux-mac-os" + }, + { + "text": "Install and start adb", + "tagName": "h3", + "path": "qa/adb-logcat", + "closestElementReference": "install-and-start-adb" + }, + { + "text": "Connecting the android device", + "tagName": "h3", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "Enable USB debugging on the android device and connect it to your Personal Computer using a USB cable.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "To verify that the devise is being detected, run:", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "The first time the command is executed, there will be a connection confirmation dialog on your android device. Allow the connection. Now, the command ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "adb devices", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": " should display your device", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "If the device is not being detected, follow the instructions in this ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "stackexchange answer", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "stackexchange answer", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "connecting-the-android-device" + }, + { + "text": "Collecting logs", + "tagName": "h3", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "Once the device is detected, open the Komodo mobile wallet app on your device and execute the following command on your PC", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "You should see output similar to", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "Once you have confirmed the output on your terminal looks similar, hit ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "CTRL + C", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": " on your keyboard to interrupt the log on your terminal.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "To collect logs of the app to a text file when the bug/problem case is executed, run the following command:", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "There won't be any visible output on the terminal except for a blinking cursor.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "Now use the app on the android device till the problem case occurs. Then hit ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "CTRL + C", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": " on your keyboard to exit from the command. You will find a text file named ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "komodo-wallet-log.txt", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": " on your desktop. Share it with the developer to report the issue.", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "collecting-logs" + }, + { + "text": "Windows", + "tagName": "h2", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Excerpts from the article ", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "https://www.xda-developers.com/install-adb-windows-macos-linux/", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " are used in the following section", + "tagName": "p", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Download the ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "ADB ZIP file for Windows", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "ADB ZIP file for Windows", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Extract the contents of this ZIP file into an easily accessible folder", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Open Windows explorer and browse to where you extracted the contents of this ZIP file", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Then open up a Command Prompt from the same directory as this ADB binary. This can be done by holding Shift and Right-clicking within the folder then click the “open command prompt here” option. (Some Windows 10 users may see “PowerShell” instead of “command prompt”.)", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Connect your smartphone or tablet to your computer with a USB cable. Change the USB mode to “file transfer (MTP)” mode. Some OEMs may or may not require this, but it’s best to just leave it in this mode for general compatibility.", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "In the Command Prompt window, enter the following command to launch the ADB daemon: ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": ".\\adb.exe devices", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "On your phone’s screen, you should see a prompt to allow or deny USB Debugging access. Naturally, you will want to grant USB Debugging access when prompted (and tap the always allow check box if you never want to see that prompt again).", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Finally, re-enter the command ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": ".\\adb.exe devices", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": ". If everything was successful, you should now see your device’s serial number in the command prompt.", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "If your device isn't being detected, follow the instructions in ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "this article", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " to install the USB driver corresponding to your device. The drivers for your device can be found in ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "this table", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "this article", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "this table", + "tagName": "a", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Now, open the Komodo mobile wallet app on your mobile and run the following command in your Command Prompt:", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Sample output:", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "If the output in your command prompt is similar, it means the setup is working correctly. Hit ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "CTRL + C", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " to interrupt the log.", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Create a folder named ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "logs", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " in the extracted folder. Run: ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "mkdir logs", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "To collect logs of the app to a text file when the bug/problem case is executed, run the following command", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "There won't be any visible output on the command prompt except for a blinking cursor.", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "Now use the app on the android device till the problem case occurs. Then hit ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "CTRL + C", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " on your keyboard to exit from the command. You will find a text file named ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "komodo-wallet-log.txt", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " in the folder named ", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": "logs", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + }, + { + "text": " in the extracted folder. Share it with the developer to report the issue.", + "tagName": "li", + "path": "qa/adb-logcat", + "closestElementReference": "windows" + } + ], + "qa/blockscout-deployment-guide": [ + { + "text": "Blockscout deployment guide", + "tagName": "h1", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "This guide currently uses the following software versions:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "Ubuntu-18.04 (Bionic) server", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "Openethereum (Parity): ", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "v3.0.1-stable", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "v3.0.1-stable", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "BlockScout: ", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "v3.2.0", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "blockscout-deployment-guide" + }, + { + "text": "General Pre-Requirements", + "tagName": "h2", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Linux(Ubuntu or CentOS) server with root access, ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "4+ TB", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " storage for ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "BlockScout database", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": ", ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "2+ TB", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " storage for ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "ETH Mainnet archive node", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "BlockScout database", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "ETH Mainnet archive node", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Create a user with sudo privileges, ssh access, domain name, ensure basic server security", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "bash commands below are for reference only, please do not copy/paste them mindlessly, or else you may expect to encounter broken links and weird paths.", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Commands marked with ", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "\\$", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " should be executed as your user, under whom the blockscout service will be running. ", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "\\#", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " means the command should be run as root. ", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "\\=\\#", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " commands are executed in psql.", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Blockscout reqs", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": " seems to be outdated, you may use latest stable releases instead. Anyway, you will be notified by BlockScout later if some binary version is not supported.", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Blockscout reqs", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "general-pre-requirements" + }, + { + "text": "Openethereum setup", + "tagName": "h2", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "openethereum-setup" + }, + { + "text": "Openethereum Pre-Install", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "openethereum-pre-install" + }, + { + "text": "Prepare storage", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "openethereum-pre-install" + }, + { + "text": "Make sure your user has access to the storage mount/path AE: ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "openethereum-pre-install" + }, + { + "text": "/mnt/openeth/storage/path", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "openethereum-pre-install" + }, + { + "text": "Get binary", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "Install basic deps: ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "build-essential cmake libudev-dev", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "Download the latest precompiled version from ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "here", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "here", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "get-binary" + }, + { + "text": "Configuration", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Create an empty log file", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Write configuration file, AE:", + "tagName": "li", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Prepare the ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "systemd", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": " service file", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Official instructions can be found\n", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "here", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": ".", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "here", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Allow the ports used by the openethereum client (", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "ports 30303/tcp, 8545/tcp, 8546/tcp", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": ") through your firewall.", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Test the ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "systemd", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": " service", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "Enable openethereum as service", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "configuration" + }, + { + "text": "PostgreSQL setup", + "tagName": "h2", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-setup" + }, + { + "text": "PostgreSQL Pre-Install", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-pre-install" + }, + { + "text": "Prepare and mount storage for BlockScout DB", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-pre-install" + }, + { + "text": "Install PostgreSQL", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": "PostgreSQL downloads", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": " page suggests usage of different repositories based on the OS. For example, in Ubuntu:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": "PostgreSQL downloads", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": "BlockScout supports psql versions: ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": "10.3+", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": ", same as in the above example.", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "install-postgre-sql" + }, + { + "text": "PostgreSQL configuration", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Create a new user in the OS and set a password using ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "adduser", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Create a database, user and set userpassword", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "PSQL user should be first created as a general user with ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "adduser", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": ". The user's\nsystem password should not be the same as their database ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "dbuserpassword", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": ".\n", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "dbuserpassword", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": " will be parsed by BlockScout as part of the DB link, thus\nit's recommended to omit problematic characters in the database password", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Set your storage path as psql datadir", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Make sure the PSQL user has the right permissions on storage dir.", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Start psql", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Validate data directory path", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Make sure your user has blockscout db access", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Optionally, you might open the PostgreSQL port on your firewall: ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "5432/tcp", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": " to access it from a remote computer, but we don't recommend it.", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "Enable postgresql as service", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "postgre-sql-configuration" + }, + { + "text": "BlockScout dependencies setup", + "tagName": "h2", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-dependencies-setup" + }, + { + "text": "Get base dependencies from apt: (yum/dnf on CentOS)", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-dependencies-setup" + }, + { + "text": "Erlang", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "Get official release ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "here", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "here", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "Example on Ubuntu:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "Check version and installation:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "erlang" + }, + { + "text": "Elixir", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "Download pre-compiled release from ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "github", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "github", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "Add elixir bin to path (for permanent effect, append it to your user bash profile)", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "Check version and installation:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "elixir" + }, + { + "text": "Node.js", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": "You can get Node.js ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": "here", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": " or in your distro repos:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": "here", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": "Check Node version:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "node-js" + }, + { + "text": "BlockScout installation", + "tagName": "h2", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Get latest master from git:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Generate DB secret and export it to bash:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Set required env variables, example below is suited for Ethereum Mainnet and Parity(Openethereum)", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Install mix deps, create db, run migrations:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Install Node.js deps, build static assets:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Enable SSL:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "The above command will generate and enable self-signed ssl certs, you need to replace them with real ones.\nYou may use ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "certbot", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": " (letsencrypt) to do it, don't forget to set user permissions and configure the file: ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "/path/to/blockscout/config/dev.exs", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": ", see example below:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "certbot", + "tagName": "a", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "If using certbot, add cert renewal to crontab", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "block-scout-installation" + }, + { + "text": "Set BlockScout as systemd service", + "tagName": "h3", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "Prepare BlockScout start script. You need to export all required env vars before each run:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "Set your start script as service:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "Open explorer ports on firewall ", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "default 4000/tcp 4001/tcp", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "Test run:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + }, + { + "text": "Enable blockscout as a service:", + "tagName": "p", + "path": "qa/blockscout-deployment-guide", + "closestElementReference": "set-block-scout-as-systemd-service" + } + ], + "qa/debug-komodo": [ + { + "text": "Debug Komodo Daemon", + "tagName": "h1", + "path": "qa/debug-komodo", + "closestElementReference": "debug-komodo-daemon" + }, + { + "text": "To run Komodo in debug mode, and help developers troubleshoot issues, please follow these steps:", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "debug-komodo-daemon" + }, + { + "text": "These steps are including notary node references in komodod command, but in\ncase you are not a notary node, you don't need to include those command\nparameters.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "debug-komodo-daemon" + }, + { + "text": "Prerequisite is to install gdb", + "tagName": "h2", + "path": "qa/debug-komodo", + "closestElementReference": "prerequisite-is-to-install-gdb" + }, + { + "text": "Run Komodo daemon with ", + "tagName": "h2", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "gdb", + "tagName": "h2", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": " tool", + "tagName": "h2", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "Just add the command ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "gdb -args", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": " before the launch parameters for the daemon.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "If you normally start the daemon using the command ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "./src/komodod -gen -genproclimit=2 -notary -pubkey=\"03af2412ebf9517a43d192193490476fd0a44312c70755e07eb03b6d71338ebc9d\"", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": ", then to get a backtrace from it, execute:", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "If you have trouble getting it started, try using the full path to the executable.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "The above command initializes debugging.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "Once you see the ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "gdb>", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": " command prompt, type ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "run", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": " to start komodo in debug mode.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "tool" + }, + { + "text": "Getting backtrace data", + "tagName": "h2", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": "When the daemon crashes, either by itself or after you issue a RPC command, you'll see a ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": "gdb>", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": " prompt again along with some output from the ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": "komodod", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": " daemon itself.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": "Type ", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": "backtrace", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + }, + { + "text": " and and it will output debug information that must be shared with a developer.", + "tagName": "p", + "path": "qa/debug-komodo", + "closestElementReference": "getting-backtrace-data" + } + ], + "qa/extract-swap-data-komodo-wallet-log": [ + { + "text": "How to extract swap data from a Komodo mobile wallet log file", + "tagName": "h1", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "Create a file named ", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "parse_logs.py", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": " and copy the code below into it.", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "the following code is from ", + "tagName": "li", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "https://github.com/smk762/pytomicDEX/blob/master/scripts/parse_logs.py", + "tagName": "li", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "https://github.com/smk762/pytomicDEX/blob/master/scripts/parse_logs.py", + "tagName": "a", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "we assume that ", + "tagName": "li", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "python3", + "tagName": "li", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": " is already installed in your system", + "tagName": "li", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "To parse a log file named ", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "log_username.txt", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": ", use the command", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": "It parses the log file, creates two directories named \"MAKER\" and \"TAKER\", then creates files named ", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": ".json", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + }, + { + "text": " in the appropriate directory.", + "tagName": "p", + "path": "qa/extract-swap-data-komodo-wallet-log", + "closestElementReference": "how-to-extract-swap-data-from-a-komodo-mobile-wallet-log-file" + } + ], + "qa": [ + { + "text": "QA Documentation", + "tagName": "h1", + "path": "qa", + "closestElementReference": "qa-documentation" + }, + { + "text": "This section contains docs useful to the Komodo QA team.", + "tagName": "p", + "path": "qa", + "closestElementReference": "qa-documentation" + } + ], + "qa/komodefi-api-quickstart": [ + { + "text": "Start using or testing Komodo DeFi Framework quickly", + "tagName": "h1", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Download the latest release of Komodo DeFi Framework API for your OS from ", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/releases", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/releases", + "tagName": "a", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "If the latest release tag is ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "beta-2.0.1683", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": ", the download links should be available at ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/releases/tag/beta-2.0.1683", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework/releases/tag/beta-2.0.1683", + "tagName": "a", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Scroll down to the bottom of the page and expand the \"Assets\" section by clicking on it", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "To download, click on the link that has the words \"mm2\", \"Release\" and the name of your OS in it", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Extract the downloaded file into a new folder named ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "KomoDeFi", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "The directory structure should be something like ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "KomoDeFi/mm2", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " i.e., the ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " binary should be present in a directory named ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "KomoDeFi", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "The directory structure should be something like ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "KomoDeFi/mm2", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " i.e., the ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " binary should be present in a directory named ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "KomoDeFi", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Open a Terminal and ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "cd", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " into the KomoDeFi directory", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Download the ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "coins", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " file; it contains the configuration information for all the supported coins", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Download the sample mm2 config file", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Rename it to ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "MM2.json", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " and change the values of the keys ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"rpc_password\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " and ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"passphrase\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"rpc_password\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value is used to authenticate yourself when sending curl commands", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"passphrase\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value is your seed words", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"rpc_password\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value is used to authenticate yourself when sending curl commands", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "\"passphrase\"", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value is your seed words", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Start Komodo DeFi Framework API by issuing the following command in a terminal window", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Komodo DeFi Framework (mm2) is up and running", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Komodo DeFi Framework (mm2) is up and running", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "You can find all the possible methods accepted by it: ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "here", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "You can find all the possible methods accepted by it: ", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "here", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "here", + "tagName": "a", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "To easily test/use various methods, open another terminal window and export the ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "rpc_password", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value to the environment variable named ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "userpass", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "To easily test/use various methods, open another terminal window and export the ", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "rpc_password", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "'s value to the environment variable named ", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "userpass", + "tagName": "p", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "Now, find the version of the program using the ", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": "version", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + }, + { + "text": " RPC:", + "tagName": "li", + "path": "qa/komodefi-api-quickstart", + "closestElementReference": "start-using-or-testing-komodo-de-fi-framework-quickly" + } + ], + "qa/komodo-desktop-wallet-build": [ + { + "text": "Build Instructions for Komodo Desktop Wallet", + "tagName": "h1", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "build-instructions-for-komodo-desktop-wallet" + }, + { + "text": "Ubuntu 16.04", + "tagName": "h2", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "ubuntu-16-04" + }, + { + "text": "Dependencies", + "tagName": "h3", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install the Open Source version of QT from here: ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "https://www.qt.io/download", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": ". You might need to create an account :(", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "You will be prompted to selected the version of QT software to install. Choose the latest version and note its number (Example: ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "5.14.1", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": ")", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Add the following environment variables to your ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.bashrc", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " or ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.zshrc", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " files", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "https://www.qt.io/download", + "tagName": "a", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "You will be prompted to selected the version of QT software to install. Choose the latest version and note its number (Example: ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "5.14.1", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": ")", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Add the following environment variables to your ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.bashrc", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " or ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.zshrc", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " files", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Example:", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "or", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "You have to look at your QT installation and set the above variables. It changes based on version/system architecture etc.,", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install the latest version of ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "CMake", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " (3.14 minimum)", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "CMake", + "tagName": "a", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "gcc-9", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " and ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "g++-9", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install the latest version of ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "clang", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " (clang-8 minimum) and related tools", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Set the recently installed clang version to be used", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install the latest version of ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "nim", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " and its tools", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Take note of the response and follow the instructions there to add a string similar to ", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "export PATH=/home//.nimble/bin:$PATH", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " to the end of your ", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.bashrc", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " or ", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "~/.zshrc", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": " files", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install other dependencies", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Install ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "libwally", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "dependencies" + }, + { + "text": "Clone and Build", + "tagName": "h3", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "The last line of the build output in your terminal gives the compiled executable's location", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "If debug version was built, it will be found in the ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "build-Debug/", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": " directory", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "If release version was built, it will be found in the ", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "build-Release/", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": " directory", + "tagName": "li", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "Example:", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + }, + { + "text": "The location of the built executable for debug version can be in", + "tagName": "p", + "path": "qa/komodo-desktop-wallet-build", + "closestElementReference": "clone-and-build" + } + ], + "qa/recover-komodo-mobile-wallet-swap-on-desktop": [ + { + "text": "How to recover a swap that failed in Komodo mobile wallet using Desktop", + "tagName": "h1", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "If for any reason, you don't want to/can't recover a stuck/timed out/failed swap in Komodo mobile wallet and wants to use the CLI on a desktop, follow this guide.", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "First, export the log file from your Komodo mobile wallet (Settings -> \"Share log File\") and transfer it to your Desktop.", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Follow the instructions in ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "this linked guide", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " to extract the swap data from the log file into a format usable by ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "this linked guide", + "tagName": "a", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "It should create two directories named \"MAKER\" and \"TAKER\" and files named ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ".json", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " in the appropriate directory. ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "uuid", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " is the swap id from the Komodo mobile wallet app", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Find the file named after your stuck swap's id and save it in a accessible location. Also note if it was in the directory named \"MAKER\" or \"TAKER\"", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Follow the instructions in ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "this linked guide", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " to download, configure and setup Komodo DeFi Framework on your desktop. When creating the file ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "MM2.json", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " as described in the guide, use the seed words from Komodo mobile wallet as the value for the key ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "\"passphrase\"", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "this linked guide", + "tagName": "a", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Once ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " is up and running, open a new terminal window and export the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "rpc_password", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " as value to the environment variable named ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "userpass", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ".", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Stop ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " by issuing the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "stop", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " command in the same terminal", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Navigate to the directory where ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " is located . You should find a directory named ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "DB", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ". Inside it, there should be a directory with a long hex (similar to ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "514fa660fa9976c87bb08e5636653ac75be9f606", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ") as its name. Navigate into it, then into \"SWAPS\", then \"MY\".", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "the directory structure should look similar to ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "DB/514fa660fa9976c87bb08e5636653ac75be9f606/SWAPS/MY", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "the directory structure should look similar to ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "DB/514fa660fa9976c87bb08e5636653ac75be9f606/SWAPS/MY", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "now, place the swap file in the above mentioned directory", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Now start ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " again using the command", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Enable the coins involved in the swap using the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "electrum", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " command", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "electrum", + "tagName": "a", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "replace the value of the parameter ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "\"coin\"", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " in the above command with the coin name of your choosing", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "find the electrum server addresses for the coin you are enabling from ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "https://github.com/jl777/coins/tree/master/electrums", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " and replace the values of the parameter named ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "\"url\"", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " in the above command with the appropriate values", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "https://github.com/jl777/coins/tree/master/electrums", + "tagName": "a", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "you have to enable both the coins involved in the stuck swap", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "The above command outputs a response similar to", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Make sure the address and balance in the above response match the values shown in Komodo mobile wallet. If the address does not match, the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "\"passphrase\"", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " (seed words) in ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "MM2.json", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " is incorrect. Stop ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ", delete the directory named ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "DB", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ", correct the passphrase and repeat all the steps from before. If the balance is ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "0", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": ", either the electrum server's addresses you are using are incorrect or your connection might have an issue. Likely a firewall is blocking it.", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Don't delete the DB if you have been using the ", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "mm2", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " on your desktop before\nopening this guide. It contains information on your past/ongoing/stuck swaps.\nDeleting it may cause you to lose access to your locked coins. Instead of\ndeleting the entire DB, simply delete the directory inside the DB that\ncorresponds to the wrong ", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "\"passphrase\"", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " value. It should be the direcory that\nwas created/modified most recently", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Once you are sure that both the coins have been enabled using the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "electrum", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " method and the addresses and balances match the values in the Komodo mobile wallet, you are ready to recover the swap. Issue the ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "recover_funds_of_swap", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " command with the swap id as an argument", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Replace the text ", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " with the swap id of the stuck swap.", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "You should see a response similar to the following, if it was successful", + "tagName": "li", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Please contact us in the ", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Discord server", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": " if any step is unclear. When in doubt, ask first before executing a command.", + "tagName": "p", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + }, + { + "text": "Discord server", + "tagName": "a", + "path": "qa/recover-komodo-mobile-wallet-swap-on-desktop", + "closestElementReference": "how-to-recover-a-swap-that-failed-in-komodo-mobile-wallet-using-desktop" + } + ], + "qa/test-komodo-source-jl777-branch": [ + { + "text": "Test komodo source from jl777 branch to make sure all the smartchains sync from scratch properly", + "tagName": "h1", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "test-komodo-source-from-jl777-branch-to-make-sure-all-the-smartchains-sync-from-scratch-properly" + }, + { + "text": "Purpose", + "tagName": "h2", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "purpose" + }, + { + "text": "The purpose of this test is to check if the komodo source from jl777 branch has no issues compiling, all smartchains starts and syncs fully from scratch, no stuck chains. You can use this guide for any branch you want to test, just change the branch name in clone and compile section.", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "purpose" + }, + { + "text": "This doc is similar to compiling komodo with an additional ", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "purpose" + }, + { + "text": "verify", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "purpose" + }, + { + "text": " script. Please make sure you are not testing this in a node with funds. This doc is intended for test nodes/computer. If you have funds in your smartchains please backup your wallet and private key. The information in this doc may change in the future to update.", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "purpose" + }, + { + "text": "Steps", + "tagName": "h2", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Install Dependencies (most needed for the first time)", + "tagName": "li", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Clone komodo repo and compile", + "tagName": "li", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Create komodo.conf file and clear all smartchains dir from .komodo data dir", + "tagName": "li", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Start Smartchains using ./assetchains.old and let them sync (it may take a while)", + "tagName": "li", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Verify the smartchains", + "tagName": "li", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "steps" + }, + { + "text": "Details", + "tagName": "h2", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "details" + }, + { + "text": "1. Install dependencies", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "1-install-dependencies" + }, + { + "text": "2. Clone, Compile & Symlink", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "2-clone-compile-and-symlink" + }, + { + "text": "3. Create ", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "komodo.conf", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": " & clear existing smartchains database and files", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "Create ", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "Paste the following content inside the file and save it. Don't forget to change values for ", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": " & ", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": ".", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "Remove existing smartchain block database and files", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "and-clear-existing-smartchains-database-and-files" + }, + { + "text": "4. Start all smartchains", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "4-start-all-smartchains" + }, + { + "text": "Wait for all sync to finish before proceeding to next step. This may take a while depending your hardware and internet connection", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "4-start-all-smartchains" + }, + { + "text": "5a. Create verify script and get coinlist file", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5a-create-verify-script-and-get-coinlist-file" + }, + { + "text": "Paste the following content into it and save the file", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5a-create-verify-script-and-get-coinlist-file" + }, + { + "text": "change permission of ", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5a-create-verify-script-and-get-coinlist-file" + }, + { + "text": "verify", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5a-create-verify-script-and-get-coinlist-file" + }, + { + "text": " script", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5a-create-verify-script-and-get-coinlist-file" + }, + { + "text": "5b. Verify the block height", + "tagName": "h3", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5b-verify-the-block-height" + }, + { + "text": "Result: The result will be similar to below. At the end of the output you will see All coins are fine.", + "tagName": "p", + "path": "qa/test-komodo-source-jl777-branch", + "closestElementReference": "5b-verify-the-block-height" + } + ], + "resources": [ + { + "text": "Repositories and Releases of KomodoPlatform", + "tagName": "h1", + "path": "resources", + "closestElementReference": "repositories-and-releases-of-komodo-platform" + }, + { + "text": "This page lists all Komodo related source repositories and builds. Please let us know in", + "tagName": "p", + "path": "resources", + "closestElementReference": "repositories-and-releases-of-komodo-platform" + }, + { + "text": "Discord", + "tagName": "p", + "path": "resources", + "closestElementReference": "repositories-and-releases-of-komodo-platform" + }, + { + "text": "if any information needs to be updated.", + "tagName": "p", + "path": "resources", + "closestElementReference": "repositories-and-releases-of-komodo-platform" + }, + { + "text": "Discord", + "tagName": "a", + "path": "resources", + "closestElementReference": "repositories-and-releases-of-komodo-platform" + }, + { + "text": "Coins", + "tagName": "h2", + "path": "resources", + "closestElementReference": "coins" + }, + { + "text": "Source code: ", + "tagName": "li", + "path": "resources", + "closestElementReference": "coins" + }, + { + "text": "https://github.com/KomodoPlatform/coins", + "tagName": "li", + "path": "resources", + "closestElementReference": "coins" + }, + { + "text": "https://github.com/KomodoPlatform/coins", + "tagName": "a", + "path": "resources", + "closestElementReference": "coins" + }, + { + "text": "Documentation", + "tagName": "h2", + "path": "resources", + "closestElementReference": "documentation" + }, + { + "text": "Source : ", + "tagName": "li", + "path": "resources", + "closestElementReference": "documentation" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx", + "tagName": "li", + "path": "resources", + "closestElementReference": "documentation" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-docs-mdx", + "tagName": "a", + "path": "resources", + "closestElementReference": "documentation" + }, + { + "text": "Insight Explorer", + "tagName": "h2", + "path": "resources", + "closestElementReference": "insight-explorer" + }, + { + "text": "All-in-one Insight explorer setup for Komodo and all Smart Chains: ", + "tagName": "li", + "path": "resources", + "closestElementReference": "insight-explorer" + }, + { + "text": "https://github.com/DeckerSU/komodo-explorers-install", + "tagName": "li", + "path": "resources", + "closestElementReference": "insight-explorer" + }, + { + "text": "https://github.com/DeckerSU/komodo-explorers-install", + "tagName": "a", + "path": "resources", + "closestElementReference": "insight-explorer" + }, + { + "text": "Komodo", + "tagName": "h2", + "path": "resources", + "closestElementReference": "komodo" + }, + { + "text": "Source code", + "tagName": "h3", + "path": "resources", + "closestElementReference": "source-code" + }, + { + "text": "https://github.com/KomodoPlatform/komodo", + "tagName": "li", + "path": "resources", + "closestElementReference": "source-code" + }, + { + "text": "https://github.com/KomodoPlatform/komodo", + "tagName": "a", + "path": "resources", + "closestElementReference": "source-code" + }, + { + "text": "Latest Binary", + "tagName": "h3", + "path": "resources", + "closestElementReference": "latest-binary" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/releases", + "tagName": "li", + "path": "resources", + "closestElementReference": "latest-binary" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/releases", + "tagName": "a", + "path": "resources", + "closestElementReference": "latest-binary" + }, + { + "text": "Docker Image", + "tagName": "h3", + "path": "resources", + "closestElementReference": "docker-image" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo", + "tagName": "li", + "path": "resources", + "closestElementReference": "docker-image" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo", + "tagName": "a", + "path": "resources", + "closestElementReference": "docker-image" + }, + { + "text": "Komodo-Qt (KomodoOcean)", + "tagName": "h2", + "path": "resources", + "closestElementReference": "komodo-qt-komodo-ocean" + }, + { + "text": "Source code", + "tagName": "h3", + "path": "resources", + "closestElementReference": "source-code-2" + }, + { + "text": "https://github.com/ip-gpu/KomodoOcean", + "tagName": "li", + "path": "resources", + "closestElementReference": "source-code-2" + }, + { + "text": "https://github.com/ip-gpu/KomodoOcean", + "tagName": "a", + "path": "resources", + "closestElementReference": "source-code-2" + }, + { + "text": "https://github.com/DeckerSU/KomodoOcean", + "tagName": "li", + "path": "resources", + "closestElementReference": "source-code-2" + }, + { + "text": "https://github.com/DeckerSU/KomodoOcean", + "tagName": "a", + "path": "resources", + "closestElementReference": "source-code-2" + }, + { + "text": "Release package", + "tagName": "h3", + "path": "resources", + "closestElementReference": "release-package" + }, + { + "text": "https://github.com/DeckerSU/KomodoOcean/releases", + "tagName": "li", + "path": "resources", + "closestElementReference": "release-package" + }, + { + "text": "https://github.com/DeckerSU/KomodoOcean/releases", + "tagName": "a", + "path": "resources", + "closestElementReference": "release-package" + }, + { + "text": "Komodo Defi Framework", + "tagName": "h2", + "path": "resources", + "closestElementReference": "komodo-defi-framework" + }, + { + "text": "Source code: ", + "tagName": "li", + "path": "resources", + "closestElementReference": "komodo-defi-framework" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework", + "tagName": "li", + "path": "resources", + "closestElementReference": "komodo-defi-framework" + }, + { + "text": "https://github.com/KomodoPlatform/komodo-defi-framework", + "tagName": "a", + "path": "resources", + "closestElementReference": "komodo-defi-framework" + } + ], + "resources/third-party": [ + { + "text": "List of third party Repositories and Resources", + "tagName": "h1", + "path": "resources/third-party", + "closestElementReference": "list-of-third-party-repositories-and-resources" + }, + { + "text": "Komodo API Implementation in Different Languages", + "tagName": "h3", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Golang by @satindergrewal", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Golang by @satindergrewal", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Golang by @sjashwin", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Golang by @sjashwin", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Java by @chrisgiffy", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Java by @chrisgiffy", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Python by @v413h4v", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "Python by @v413h4v", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "C# by @adi2624", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "C# by @adi2624", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "NodeJS by @hafsa-fatima", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "NodeJS by @hafsa-fatima", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "komodo-api-implementation-in-different-languages" + }, + { + "text": "RPC clients and wrappers", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "nodejs json-rpc client for Komodo and Smart Chains, with Promises and support for multiple instances - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/gcharang/node-komodo-rpc", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/gcharang/node-komodo-rpc", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "nodejs library to create and sign KMD transactions - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/HebePlatform/Komodo-Lib-JS", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/HebePlatform/Komodo-Lib-JS", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "Rust RPC client - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/jorian/komodorpc-rust-client", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/jorian/komodorpc-rust-client", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "Browser based RPC Wrapper for Komodo Platform written (alpha) - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/imylomylo/komodo-rpc-web", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/imylomylo/komodo-rpc-web", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "Komodo Core API for cpp - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/ca333/komodoAPI-cpp", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/ca333/komodoAPI-cpp", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "PHP library for manipulating Komodo addresses and keys and interacting with Electrum servers - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://packagist.org/packages/webworker01/komodophp", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://packagist.org/packages/webworker01/komodophp", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "npm module to calculate KMD rewards of a UTXO - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "https://github.com/atomiclabs/get-komodo-rewards", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "rpc-clients-and-wrappers" + }, + { + "text": "Turnkey Solutions to run Komodo", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "One-click, easy-to-deploy blockchain+services server: a cakeshop in a box - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "https://github.com/komodo-cakeshop/komodo-in-a-box", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "https://github.com/komodo-cakeshop/komodo-in-a-box", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "Dockerized Komodo installation - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "https://github.com/imylomylo/docker-komodod", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "https://github.com/imylomylo/docker-komodod", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "turnkey-solutions-to-run-komodo" + }, + { + "text": "CC Proof of Concepts", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "General CC", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "TUI for various CC modules written in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "TUI for various CC modules written in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Assets", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pokemon NFTs - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/NOCTLJRNE/Komodo-Pokemon", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Assets CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/assets_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Buy/Sell NFT Rogue Characters line 1527-1915 - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/lib/tuilib.py#L1527", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pokemon NFTs - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/NOCTLJRNE/Komodo-Pokemon", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/NOCTLJRNE/Komodo-Pokemon", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Assets CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/assets_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/assets_cc_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Buy/Sell NFT Rogue Characters line 1527-1915 - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/lib/tuilib.py#L1527", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/lib/tuilib.py#L1527", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Channels", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Channels Instant Payment Mechanism - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/ChannelsCC-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Channels Instant Payment Mechanism - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/ChannelsCC-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/ChannelsCC-GUI", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Coda", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Constant Blockchain Size - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/To-Do/issues/2", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Constant Blockchain Size - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/To-Do/issues/2", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/To-Do/issues/2", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Dice", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "DiceCC GUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/DiceCC-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "KMDice Remote GUI Windows - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://www.virustotal.com/gui/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "DiceCC GUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/DiceCC-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/DiceCC-GUI", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "KMDice Remote GUI Windows - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://www.virustotal.com/gui/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://www.virustotal.com/gui/", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Dilithium", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Dilitium Quantum Security Article - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://komodoplatform.com/en/blog/dilithium-quantum-secure-blockchain/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Dilitium Quantum Security Article - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://komodoplatform.com/en/blog/dilithium-quantum-secure-blockchain/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://komodoplatform.com/en/blog/dilithium-quantum-secure-blockchain/", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Games", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Antara gaming SDK - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/antara-gaming-sdk/tree/0.0.1", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Antara gaming SDK - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/antara-gaming-sdk/tree/0.0.1", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/antara-gaming-sdk/tree/0.0.1", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Gateways", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Gateways CC Creation TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_creation_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Gateways CC Usage TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_usage_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Gateways CC Creation TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_creation_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_creation_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Gateways CC Usage TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_usage_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/gateways_usage_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Heir", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Marmara", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Marmara TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/marmara_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Marmara TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/marmara_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/marmara_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "MoMoM", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Musig", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Oracles", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "GPS tracking a wandering hound with Particle.io via Komodo cryptoconditions oracles, displayed on Leaflet. Source code: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/smk762/Dragonhound", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "WIP", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Oracles CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/oracles_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Oracles CC TrollBox in Python (Chat) - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/OraclesCC_Chat-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "GPS tracking a wandering hound with Particle.io via Komodo cryptoconditions oracles, displayed on Leaflet. Source code: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/smk762/Dragonhound", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "WIP", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/smk762/Dragonhound", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Oracles CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/oracles_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/oracles_cc_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Oracles CC TrollBox in Python (Chat) - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/OraclesCC_Chat-GUI", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/OraclesCC_Chat-GUI", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Payments", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Payments CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/payments_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Payments CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/payments_cc_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/payments_cc_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs Explainer - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/komodo_jl777/wiki/Pegs-CC", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs CC Creation TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_creation_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs CC Usage TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_usage_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs Explainer - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/komodo_jl777/wiki/Pegs-CC", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/Mixa84/komodo_jl777/wiki/Pegs-CC", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs CC Creation TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_creation_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_creation_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Pegs CC Usage TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_usage_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/pegs_usage_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Synthetic Prices Betting Game - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://docs.google.com/document/d/1O5hJ_ZeBWK-xP3f3RM48ruG3mOlsPbbLcXjyqtn0Oew/edit", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC App2 in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_app_v2.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC Visualization in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_visualization_server.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC Rekt Inspector in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rekt_inspector.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Synthetic Prices Betting Game - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://docs.google.com/document/d/1O5hJ_ZeBWK-xP3f3RM48ruG3mOlsPbbLcXjyqtn0Oew/edit", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://docs.google.com/document/d/1O5hJ_ZeBWK-xP3f3RM48ruG3mOlsPbbLcXjyqtn0Oew/edit", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC App2 in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_app_v2.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_app_v2.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC Visualization in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_visualization_server.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/prices_visualization_server.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Prices CC Rekt Inspector in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rekt_inspector.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rekt_inspector.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rewards", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rogue", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rogue Game TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/wiki/Get-Started-with-Rogue-Game", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rogue Game TUI Python in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rogue_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rogue Game TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/wiki/Get-Started-with-Rogue-Game", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KomodoPlatform/komodo/wiki/Get-Started-with-Rogue-Game", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Rogue Game TUI Python in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rogue_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/rogue_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Sudoku", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Sudoku Game GUI - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/Komodoku", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Sudoku Game GUI - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/Komodoku", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/Komodoku", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Tetris", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Tetris CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/tetris_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Tetris CC TUI in Python - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/tetris_tui.py", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/tonymorony/komodo-cctools-python/blob/master/tetris_tui.py", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Chat", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "On chain real time chat for KMD Smart Chains - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KMDLabs/trollbox", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "On chain real time chat for KMD Smart Chains - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KMDLabs/trollbox", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "https://github.com/KMDLabs/trollbox", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "cc-proof-of-concepts" + }, + { + "text": "Proof of Concept", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "Scripts to create a Komodo Smart Chain using a single node for testing (Has automated explorer installation too) - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/gcharang/create-smartchain", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/gcharang/create-smartchain", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "Integrated development environment and SDK - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/imylomylo/komodo-cakeshop", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/imylomylo/komodo-cakeshop", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "Python CLI wrapper, tradebot and TUI for Marketmaker2 - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/smk762/pytomicDEX", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "https://github.com/smk762/pytomicDEX", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "proof-of-concept" + }, + { + "text": "KMDLabs", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "Scripts to easily run a Staked Notary - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/KMDLabs/LabsNotary", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/KMDLabs/LabsNotary", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "Automated staker for PoS Smart Chains, has an auto bootstrapper, and a dilithium menu - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/KMDLabs/pos64staker", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/KMDLabs/pos64staker", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "Assortment of Python scripts for use in the Komodo ecosystem (Antara Modules, MarketMaker 2, Notary Node ops) - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/smk762/DragonhoundTools", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "https://github.com/smk762/DragonhoundTools", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "kmd-labs" + }, + { + "text": "Ledger reward claim", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "Source Code: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "https://github.com/KomodoPlatform/hw-kmd-wallet", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "https://wallet.kmd.io/", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "Source Code: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "https://github.com/KomodoPlatform/hw-kmd-wallet", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "https://github.com/KomodoPlatform/hw-kmd-wallet", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "ledger-reward-claim" + }, + { + "text": "Guides for Notary Nodes", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/chainstrike/nntools/tree/master/guides", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/chainstrike/nntools/tree/master/guides", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "Candidate Proposals - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/KomodoPlatform/NotaryNodes", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/KomodoPlatform/NotaryNodes", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/goldenman-kr/komodo-utils", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://github.com/goldenman-kr/komodo-utils", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "Notary Node requirements and guidelines - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://komodoelection.com/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "https://komodoelection.com/", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "guides-for-notary-nodes" + }, + { + "text": "Notary stats", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://notarystats.info", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://notarystats.info", + "tagName": "p", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://notarystats.info", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://komodostats.com/", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://komodostats.com/", + "tagName": "p", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "https://komodostats.com/", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "notary-stats" + }, + { + "text": "Mining Software", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "EWBF's CUDA Zcash miner - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "https://bitcointalk.org/index.php?topic=1707546.0", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "https://bitcointalk.org/index.php?topic=1707546.0", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "Local stratum pool for solo mining Komodo - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "https://github.com/TheComputerGenie/KMD-solo-mining", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "https://github.com/TheComputerGenie/KMD-solo-mining", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "mining-software" + }, + { + "text": "Explorers and Other tools", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "explorers-and-other-tools" + }, + { + "text": "https://kmdexplorer.io", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "explorers-and-other-tools" + }, + { + "text": "https://kmdexplorer.io", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "explorers-and-other-tools" + }, + { + "text": "https://dexstats.info", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "explorers-and-other-tools" + }, + { + "text": "https://dexstats.info", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "explorers-and-other-tools" + }, + { + "text": "Scaling Test", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "Scaletest Containers: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/patchkez/scaletest_containers", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/patchkez/scaletest_containers", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "Transaction Visualization: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/smk762/txscl_vis", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/smk762/txscl_vis", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "Tx Blaster: ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/Meshbits/zarchive_TxBlaster", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "https://github.com/Meshbits/zarchive_TxBlaster", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "scaling-test" + }, + { + "text": "Miscellaneous", + "tagName": "h2", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Airdrop + Snapshot tool, written in Rust - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/jorian/airdrop", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/jorian/airdrop", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Interledger crypto-conditions implemented in C, including simple JSON API - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/ssadler/libcryptoconditions", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/ssadler/libcryptoconditions", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Komodo clientside tools - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/ssadler/hoek", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/ssadler/hoek", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Scripts toolbox repository for Komodo and Iguana - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/KomodoPlatform/komodotools", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/KomodoPlatform/komodotools", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Scripts that help with staking on a Komodo Smart Chain. - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/KMDLabs/PoS_scripts", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/KMDLabs/PoS_scripts", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "A set of komodo helper scripts - ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/DeckerSU/komodo_scripts", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/DeckerSU/komodo_scripts", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "Script to install an explorer for any Komodo Smart Chain ", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/gcharang/komodo-install-explorer", + "tagName": "li", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + }, + { + "text": "https://github.com/gcharang/komodo-install-explorer", + "tagName": "a", + "path": "resources/third-party", + "closestElementReference": "miscellaneous" + } + ], + "smart-chains/api/address": [ + { + "text": "Address Index", + "tagName": "h1", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "address-index" + }, + { + "text": "getaddressbalance", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "getaddressbalance '{ \"addresses\" : [ \"address\" , ... ] }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "getaddressbalance", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": " method returns the confirmed balance for an address, or addresses. It requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ----------- |\n| \"address\" | (string) | the address |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------------ |\n| \"balance\" | (number) | the current confirmed balance in satoshis |\n| \"received\" | (number) | the total confirmed number of satoshis received (including change) |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples" + }, + { + "text": "getaddressdeltas", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "getaddressdeltas '{ \"addresses\" : [ \"address\" , ... ] }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "getaddressdeltas '{ \"addresses\" : [ \"address\" , ... ] , \"start\": start, \"end\": end, \"chainInfo\": boolean }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "getaddressdeltas", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": " method returns all confirmed balance changes of an address. The user can optionally limit the response to a given interval of blocks. The method requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressdeltas" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | ----------------------------------------------------------------------- |\n| \"address\" | (string) | the address |\n| \"start\" | (number) | the start block height |\n| \"end\" | (number) | the end block height |\n| \"chainInfo\" | (boolean) | include chain info in results (only applies if start and end specified) |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | --------------------------------- |\n| \"satoshis\" | (number) | the difference in satoshis |\n| \"txid\" | (string) | the related transaction id |\n| \"index\" | (number) | the related input or output index |\n| \"height\" | (number) | the block height |\n| \"address\" | (string) | the address |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-2" + }, + { + "text": "getaddressmempool", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "getaddressmempool '{ \"addresses\" : [ \"address\" , ... ] }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "getaddressmempool", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": " method returns all mempool deltas for an address, or addresses. The method requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressmempool" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ----------- |\n| \"address\" | (string) | the address |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------ |\n| \"address\" | (string) | the address |\n| \"txid\" | (string) | the related txid |\n| \"index\" | (number) | the related input or output index |\n| \"satoshis\" | (number) | the difference in satoshis |\n| \"timestamp\" | (number) | the time the transaction entered the mempool (seconds) |\n| \"prevtxid\" | (string) | the previous txid (if spending) |\n| \"prevout\" | (string) | the previous transaction output index (if spending) |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-3" + }, + { + "text": "getaddresstxids", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "getaddresstxids '{ \"addresses\" : [ \"address\" , ... ] }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "getaddresstxids", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": " method returns the txids for an address, or addresses. It requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getaddresstxids" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ---------------------- |\n| \"address\" | (string) | the address |\n| \"start\" | (number) | the start block height |\n| \"end\" | (number) | the end block height |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ------------------ |\n| \"transaction_id\" | (string) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-4" + }, + { + "text": "getaddressutxos", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "getaddressutxos '{ \"addresses\" : [ \"address\" , ... ], \"chaininfo\" }'", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "getaddressutxos", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": " method returns all unspent outputs for an address. It requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getaddressutxos" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | ------------------------------- |\n| \"address\" | (string) | the address |\n| \"chainInfo\" | (boolean) | include chain info with results |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ------------------------------------ |\n| \"address\" | (string) | the address |\n| \"txid\" | (string) | the output txid |\n| \"height\" | (number) | the block height |\n| \"outputIndex\" | (number) | the output index |\n| \"script\" | (string) | the script hex encoded |\n| \"satoshis\" | (number) | the number of satoshis of the output |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-5" + }, + { + "text": "getsnapshot", + "tagName": "h2", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "getsnapshot top", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "getsnapshot", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": " method returns a snapshot of addresses and their amounts at the Smart Chain's current height.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "The method requires ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "addressindex", + "tagName": "a", + "path": "smart-chains/api/address", + "closestElementReference": "getsnapshot" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------ | ----------------------------------------------------- |\n| \"top\" | (number, optional) | Only return this many addresses, i.e. top N rich list |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/address", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | ---------------- | --------------------------------------------------- |\n| \"addresses\" | (array of jsons) | the array containing the address and amount details |\n| \"addr\" | (string) | an address |\n| \"amount\" | (number) | the amount of coins in the above address |\n| \"total\" | (numeric) | the total amount in snapshot |\n| \"average\" | (numeric) | the average amount in each address |\n| \"utxos\" | (number) | the total number of utxos in snapshot |\n| \"total_addresses\" | (number) | the total number of addresses in snapshot, |\n| \"start_height\" | (number) | the block height snapshot began |\n| \"ending_height\" | (number) | the block height snapshot finished, |\n| \"start_time\" | (number) | the unix epoch time snapshot started |\n| \"end_time\" | (number) | the unix epoch time snapshot finished |", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/address", + "closestElementReference": "examples-6" + } + ], + "smart-chains/api/blockchain": [ + { + "text": "Blockchain", + "tagName": "h1", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "blockchain" + }, + { + "text": "coinsupply", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "coinsupply height", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "coinsupply", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": " method returns the coin supply information for the indicated block ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": ". If no height is given, the method defaults to the blockchain's current height.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "To use this method for large block heights, first execute the method for a small block height, such as ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "1000", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": ". Then execute the method for an incrementally higher block height, such as ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "10000", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": ". Continue increasing the height until reaching the desired height.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "coinsupply" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------- | ------------------------ |\n| \"height\" | (integer, optional) | the desired block height |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| -------- | --------- | ------------------------------------------------------------- |\n| \"result\" | (string) | whether the request was successful |\n| \"coin\" | (string) | the ticker symbol of the coin for Smart Chains, otherwise KMD |\n| \"height\" | (integer) | the height of this coin supply data |\n| \"supply\" | (float) | the transparent coin supply |\n| \"zfunds\" | (float) | the shielded coin supply (in ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "z", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "addrs) |\n| \"sprout\" | (float) | the sprout coin supply (in ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "zc", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "addrs) |\n| \"total\" | (float) | the total coin supply, i.e. ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "sum of supply + zfunds", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples" + }, + { + "text": "getbestblockhash", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getbestblockhash" + }, + { + "text": "getbestblockhash", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getbestblockhash" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getbestblockhash" + }, + { + "text": "getbestblockhash", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getbestblockhash" + }, + { + "text": " method returns the hash of the best (tip) block in the longest block chain.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getbestblockhash" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | --------------------------- |\n| \"hex\" | (string) | the block hash, hex encoded |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-2" + }, + { + "text": "getblock", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "getblock hash|height ( verbose )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": " method returns the block's relevant state information.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "The verbose input is optional. The default value is true, and it will return a json object with information about the indicated block. If verbose is ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": ", the command returns a string that is serialized hex-encoded data for the indicated block.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | --------------------------------- | ---------------------------------------------------------- |\n| hash ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": "OR", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": " height | string ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": "OR", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": " number, respectively | the block hash ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": "OR", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": " the block height |\n| verbose | (boolean, optional, default=true) | true returns a json object, false returns hex-encoded data |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-3" + }, + { + "text": "Response (verbose = true)", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-verbose-true" + }, + { + "text": "| Name | Type | Description |\n| --------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------- |\n| \"hash\" | (string) | the block hash (same as provided hash) |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this block); the returned value is ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-verbose-true" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-verbose-true" + }, + { + "text": " if the block is not on the main chain |\n| \"size\" | (numeric) | the block size |\n| \"height\" | (numeric) | the block height or index (same as provided height) |\n| \"version\" | (numeric) | the block version |\n| \"merkleroot\" | (string) | the merkle root |\n| \"tx\" : [ \"transaction_id\" ,...] | (array of strings) | |\n| \"time\" | (numeric) | the block time in seconds since epoch (Jan 1 1970 GMT) |\n| \"nonce\" | (numeric) | the nonce |\n| \"bits\" | (string) | the bits |\n| \"difficulty\" | (numeric) | the difficulty |\n| \"previousblockhash\" | (string) | the hash of the previous block |\n| \"nextblockhash\" | (string) | the hash of the next block |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-verbose-true" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | --------------------------------------------------------------------- |\n| \"data\" | (string) | a string that is serialized, hex-encoded data for the indicated block |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-3" + }, + { + "text": "getblockchaininfo", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "getblockchaininfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "getblockchaininfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": " method returns a json object containing state information about blockchain processing.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "When the chain tip is at the last block before a network upgrade activation, the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "consensus.chaintip", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": " value is not equal to the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "consensus.nextblock", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": " value.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "getblockchaininfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": " method now returns a new size_on_disk key, which is the size of the blockchain, on disk, in bytes.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockchaininfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"chain\" | (string) | the current network name, as defined in BIP70 (main, test, regtest) |\n| \"blocks\" | (numeric) | the current number of blocks processed in the server |\n| \"headers\" | (numeric) | the current number of headers we have validated |\n| \"bestblockhash\" | (string) | the hash of the currently best block |\n| \"difficulty\" | (numeric) | the current difficulty |\n| \"verificationprogress\" | (numeric) | an estimate of verification progress [0..1] |\n| \"chainwork\" | (string) | the total amount of work in the active chain, in hexadecimal |\n| \"pruned\" | (bool) | whether the current state is in pruning mode; if true, the blockchain will not keep all transaction and block information, to preserve disk space |\n| \"size_on_disk\" | (numeric) | the size of the blockchain on disk, measured in bytes |\n| \"commitments\" | (numeric) | the current number of note commitments in the commitment tree |\n| \"softforks\": { ..... } | (array) | the status of softforks in progress |\n| \"id\" | (string) | the name of the softfork |\n| \"version\" | (numeric) | the block version |\n| \"enforce\": { ... } | (object) | the progress toward enforcing the softfork rules for blocks of the new version |\n| \"status\" | (boolean) | true if threshold reached |\n| \"found\" | (numeric) | the number of blocks with the new version found |\n| \"required\" | (numeric) | the number of blocks required to trigger |\n| \"window\" | (numeric) | the maximum size of the examined window of recent blocks |\n| \"reject\": { ... } | (object) | the progress toward rejecting pre-softfork blocks (same fields as \"enforce\") |\n| \"upgrades\": | (object) | the status of network upgrades |\n| \"xxxxxxxxx_string\": | (string) | the branch ID of the upgrade |\n| \"name\" | (string) | the name of upgrade |\n| \"activationheight\" | (numeric) | the block height of activation |\n| \"status\" | (string) | the status of the upgrade |\n| \"info\" | (string) | additional information about the upgrade |\n| \"consensus\": { ..... } | (object) | branch IDs of the current and upcoming consensus rules |\n| \"chaintip\" | (string) | branch ID used to validate the current chain tip |\n| \"nextblock\" | (string) | branch ID under which the next block will be validated |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-4" + }, + { + "text": "getblockcount", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockcount" + }, + { + "text": "getblockcount", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockcount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockcount" + }, + { + "text": "getblockcount", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockcount" + }, + { + "text": " method returns the number of blocks in the best valid block chain.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockcount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | ----------------------- |\n| data | (numeric) | the current block count |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-5" + }, + { + "text": "getblockhash", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhash" + }, + { + "text": "getblockhash index", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhash" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhash" + }, + { + "text": "getblockhash", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhash" + }, + { + "text": " method returns the hash of the indicated block index, according to the best blockchain at the time provided.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhash" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------- | --------------- |\n| index | (numeric, required) | the block index |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------- |\n| \"hash\" | (string) | the block hash |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-6" + }, + { + "text": "getblockhashes", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "getblockhashes high low '{\"noOrphans\": bool, \"logicalTimes\": bool}'", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "getblockhashes", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": " method returns an array of hashes of blocks within the timestamp range provided.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "The method requires ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "timestampindex", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "timestampindex", + "tagName": "a", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockhashes" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------- | ------------------------------------------------------------------------------------------ |\n| high | (numeric, required) | the newer block timestamp |\n| low | (numeric, required) | the older block timestamp |\n| options | (string, required) | a json object |\n| \"noOrphans\" | (boolean) | a value of ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": " implies that the method will only include blocks on the main chain |\n| \"logicalTimes\" | (boolean) | a value of ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": " implies that the method will only include logical timestamps with hashes |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | --------------------- |\n| \"hash\" | (string) | the block hash |\n| \"blockhash\" | (string) | the block hash |\n| \"logicalts\" | (numeric) | the logical timestamp |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-7" + }, + { + "text": "getblockheader", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": "getblockheader \"hash\" ( verbose )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": "getblockheader", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": " method returns information about the indicated block.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": "The verbose input is optional. If verbose is false, the method returns a string that is serialized, hex-encoded data for the indicated blockheader. If verbose is true, the method returns a json object with information about the indicated blockheader.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getblockheader" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------------------------------- | ---------------------------------------------------------- |\n| \"hash\" | (string, required) | the block hash |\n| verbose | (boolean, optional, default=true) | true returns a json object, false returns hex-encoded data |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-8" + }, + { + "text": "Response (verbose = ", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "true", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| \"hash\" | (string) | the block hash (same as provided) |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this block); if the block is not on the main chain, a value of ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": " is returned |\n| \"height\" | (numeric) | the block height or index |\n| \"version\" | (numeric) | the block version |\n| \"merkleroot\" | (string) | the merkle root |\n| \"time\" | (numeric) | the block time in seconds since epoch (Jan 1 1970 GMT) |\n| \"nonce\" | (numeric) | the nonce |\n| \"bits\" | (string) | the bits |\n| \"difficulty\" | (numeric) | the difficulty |\n| \"previousblockhash\" | (string) | the hash of the previous block |\n| \"nextblockhash\" | (string) | the hash of the next block |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "Response (verbose = ", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "false", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | -------------------------------------------------------------------- |\n| \"data\" | (string) | a string that is serialized hex-encoded data for the indicated block |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-8" + }, + { + "text": "getchaintips", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintips" + }, + { + "text": "getchaintips", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintips" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintips" + }, + { + "text": "getchaintips", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintips" + }, + { + "text": " method returns information about all known tips in the block tree, including the main chain and any orphaned branches.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintips" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | ------------------------------------------------------------- |\n| \"height\" | (numeric) | the height of the chain tip |\n| \"hash\" | (string) | the block hash of the tip |\n| \"branchlen\" | (numeric) | ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": " for main chain |\n| \"status\" | (string) | ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": "\"active\"", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": " for the main chain |\n| \"height\" | (numeric) | the height of the branch tip |\n| \"hash\" | (string) | the blockhash of the branch tip |\n| \"branchlen\" | (numeric) | the length of the branch connecting the tip to the main chain |\n| \"status\" | (string) | the status of the chain |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-8" + }, + { + "text": "Possible values for the returned status property", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "possible-values-for-the-returned-status-property" + }, + { + "text": "| Status | Description |\n| --------------- | ----------------------------------------------------------------------------- |\n| \"invalid\" | this branch contains at least one invalid block |\n| \"headers-only\" | not all blocks for this branch are available, but the headers are valid |\n| \"valid-headers\" | all blocks are available for this branch, but they were never fully validated |\n| \"valid-fork\" | this branch is not part of the active chain, but is fully validated |\n| \"active\" | this is the tip of the active main chain, which is certainly valid |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "possible-values-for-the-returned-status-property" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-9" + }, + { + "text": "getchaintxstats", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintxstats" + }, + { + "text": "getchaintxstats nblocks blockhash", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintxstats" + }, + { + "text": "The method ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintxstats" + }, + { + "text": "getchaintxstats", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintxstats" + }, + { + "text": " returns statistics about the total number and rate of transactions in the chain.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getchaintxstats" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------- | --------------------------------------------- |\n| nblocks | (numeric, optional) | the number of blocks in the averaging window. |\n| blockhash | (string, optional) | the hash of the block which ends the window |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |\n| \"time\" | (numeric) | the timestamp for the final block in the window in UNIX format |\n| \"txcount\" | (numeric) | the total number of transactions in the chain up to this point |\n| \"window_final_block_hash\" | (string) | the hash of the final block in the window |\n| \"window_block_count\" | (numeric) | the size of the window in the number of blocks |\n| \"window_tx_count\" | (numeric) | the number of transactions in the window; this value is only returned if ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": "window_block_count", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": " is > 0. |\n| \"window_interval\" | (numeric) | the elapsed time in the window in seconds; this value is only returned if ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": "window_block_count", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": " is > 0. |\n| \"txrate\" | (numeric) | the average rate of transactions per second in the window; this value is only returned if ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": "window_interval", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": " is > 0. |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-10" + }, + { + "text": "getdifficulty", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getdifficulty" + }, + { + "text": "getdifficulty", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getdifficulty" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getdifficulty" + }, + { + "text": "getdifficulty", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getdifficulty" + }, + { + "text": " method returns the proof-of-work difficulty as a multiple of the minimum difficulty.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getdifficulty" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | -------------------------------------------------------------------- |\n| number | (numeric) | the proof-of-work difficulty as a multiple of the minimum difficulty |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-11" + }, + { + "text": "getlastsegidstakes", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "getlastsegidstakes depth", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "getlastsegidstakes", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": " method returns an object containing the number of blocks staked by each segid in the last ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "X", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": " number of blocks, where the value of ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "X", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": " is equal to the indicated ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "depth", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getlastsegidstakes" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------- | ------------------------------------------------------------------------------------ |\n| depth | (numeric, required) | the number of blocks to scan, starting from the current height and working backwards |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------- | ---------------------------------------------------------------------------------------------------------- |\n| \"NotSet\" | (numeric) | the number of blocks that have no ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "SegId", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " set |\n| \"PoW\" | (numeric) | the number of blocks created through ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "PoW", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " |\n| \"PoSPerc\" | (numeric) | the percentage of blocks created through ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "PoS", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " |\n| \"SegIds\" | (json object) | the json containing the data of number of blocks in each ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "SegId", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " |\n| \"n\" | (numeric) | the number of blocks staked from ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "SegId n", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " in the last X blocks, where X is equal to the indicated ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "depth", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-12" + }, + { + "text": "getmempoolinfo", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getmempoolinfo" + }, + { + "text": "getmempoolinfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getmempoolinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getmempoolinfo" + }, + { + "text": "getmempoolinfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getmempoolinfo" + }, + { + "text": " method returns details on the active state of the transaction memory pool.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getmempoolinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-13" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-13" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | -------------------------------------- |\n| \"size\" | (numeric) | the current transaction count |\n| \"bytes\" | (numeric) | the sum of all transaction sizes |\n| \"usage\" | (numeric) | the total memory usage for the mempool |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-13" + }, + { + "text": "getrawmempool", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": "getrawmempool ( verbose )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": "getrawmempool", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": " method returns all transaction ids in the memory pool as a json array of transaction ids.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": "The verbose input is optional and is false by default. When it is true, the method instead returns a json object with various related data.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getrawmempool" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-14" + }, + { + "text": "| Name | Type | Description |\n| ------- | ---------------------------------- | ----------------------------------------------------------------- |\n| verbose | (boolean, optional, default=false) | true for a json object, false for a json array of transaction ids |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-14" + }, + { + "text": "Response (verbose = ", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "false", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ------------------ |\n| \"transaction_id\" | (string) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "Response (verbose = ", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "true", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ---------------------------- | ------------- | ----------------------------------------------------------------------- |\n| \"transaction_id\": { .... } | (json object) | |\n| \"size\" | (numeric) | the transaction size in bytes |\n| \"fee\" | (numeric) | the transaction fee |\n| \"time\" | (numeric) | the local time transaction entered pool in seconds since 1 Jan 1970 GMT |\n| \"height\" | (numeric) | the block height wherein the transaction entered the mempool |\n| \"startingpriority\" | (numeric) | the priority when the transaction entered the mempool |\n| \"currentpriority\" | (numeric) | the transaction priority at the current height |\n| \"depends\": { ... } | (array) | unconfirmed transactions used as inputs for this transaction |\n| \"transaction_id\" | (string) | the parent transaction id |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-14" + }, + { + "text": "getspentinfo", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "getspentinfo '{\"txid\": \"txid_string\", \"index\"}'", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "getspentinfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": " method returns the transaction id and index where the given output is spent.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "The method requires ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "spentindex", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": " to be enabled.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "spentindex", + "tagName": "a", + "path": "smart-chains/api/blockchain", + "closestElementReference": "getspentinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-15" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------------ |\n| \"txid\" | (string) | the hex string of the transaction id |\n| \"index\" | (number) | the output's index |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-15" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-13" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------ |\n| \"txid\" | (string) | the transaction id |\n| \"index\" | (number) | the spending input index |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-13" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-15" + }, + { + "text": "gettxout", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxout" + }, + { + "text": "gettxout \"txid_string\" vout_number ( includemempool_bool )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxout" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxout" + }, + { + "text": "gettxout", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxout" + }, + { + "text": " method returns details about an unspent transaction output.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxout" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-16" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------- | ------------------------------ |\n| \"txid\" | (string, required) | the transaction id |\n| vout | (numeric, required) | the vout value |\n| includemempool | (boolean, optional) | whether to include the mempool |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-16" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | ------------------ | ----------------------------------------------------------------------------------- |\n| \"bestblock\" | (string) | the block hash |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service aware |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this block with this transaction) |\n| \"value\" | (numeric) | the transaction value |\n| \"scriptPubKey\": | (json object) | |\n| \"asm\" | (string) | ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": " in assembly format |\n| \"hex\" | (string) | ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": " in hex format |\n| \"reqSigs\" | (numeric) | the number of required signatures |\n| \"type\" | (string) | the type, e.g. pubkeyhash |\n| \"addresses\" | (array of strings) | an array of Komodo addresses |\n| \"address\" | (string) | the blockchain address |\n| \"version\" | (numeric) | the version |\n| \"coinbase\" | (boolean) | whether this is a coinbase transaction |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-14" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-16" + }, + { + "text": "gettxoutproof", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "gettxoutproof '[\"transaction_id\", ... ]' ( \"blockhash_string\" )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "gettxoutproof", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": " method returns a hex-encoded proof showing that the indicated transaction was included in a block.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "gettxoutproof", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": " method relies on the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": " runtime parameter. This parameter is enabled by default on all KMD-based blockchains, and should never be disabled.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutproof" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-17" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | --------------------------------------------------------------------------------- |\n| \"txid\" | (string) | a transaction hash |\n| \"blockhash\" | (string, optional) | if specified, the method looks for the relevant transaction id in this block hash |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-17" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-15" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------- |\n| \"data\" | (string) | a string that is a serialized, hex-encoded data for the proof |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-15" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-17" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-17" + }, + { + "text": "gettxoutsetinfo", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": "gettxoutsetinfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": "gettxoutsetinfo", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": " method returns statistics about the unspent transaction output set.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": "Note this call may take a long time to complete, depending on the state of your blockchain.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "gettxoutsetinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-18" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-18" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-16" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | --------- | --------------------------------- |\n| \"height\" | (numeric) | the current block height (index) |\n| \"bestblock\" | (string) | the best block hash hex |\n| \"transactions\" | (numeric) | the number of transactions |\n| \"txouts\" | (numeric) | the number of output transactions |\n| \"bytes_serialized\" | (numeric) | the serialized size |\n| \"hash_serialized\" | (string) | the serialized hash |\n| \"total_amount\" | (numeric) | the total amount |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-16" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-18" + }, + { + "text": "kvsearch", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "kvsearch \"key_string\"", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "kvsearch", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": " method searches for a key stored via the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "kvupdate", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": " command.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "kvupdate", + "tagName": "a", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "This feature is only available for Smart Chains.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvsearch" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-19" + }, + { + "text": "| Name | Type | Description |\n| ---- | ------------------ | ------------------------------------------------------ |\n| key | (string, required) | the key for which the user desires to search the chain |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-19" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": "| Name | Type | Description |\n| --------------- | --------- | --------------------------------------------------------- |\n| \"coin\" | (string) | the chain on which the key is stored |\n| \"currentheight\" | (numeric) | the current height of the chain |\n| \"key\" | (string) | the key |\n| \"keylen\" | (string) | the length of the key |\n| \"owner\" | (string) | a hex string representing the owner of the key |\n| \"height\" | (numeric) | the height at which the key was stored |\n| \"expiration\" | (numeric) | the height at which the key will expire |\n| \"flags\" | (numeric) | ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": " if the key was created with a password; ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": " otherwise |\n| \"value\" | (string) | the stored value |\n| \"valuesize\" | (string) | the amount of characters stored |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-17" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-19" + }, + { + "text": "kvupdate", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": "kvupdate \"key_string\" \"value_string\" days \"passphrase_string\"", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": "kvupdate", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": " method stores a key/value pair via OP_RETURN.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": "This feature is available only for Smart Chains. The maximum value memory size is 8kB.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "kvupdate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-20" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------- | ---------------------------------------------------------------------- |\n| \"key\" | (string, required) | key (should be unique) |\n| \"value\" | (string, required) | value |\n| \"days\" | (numeric, required) | amount of days before the key expires (1440 blocks/day); minimum 1 day |\n| \"passphrase\" | (string, optional) | passphrase required to update this key |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-20" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-18" + }, + { + "text": "| Name | Type | Description |\n| ------------ | --------- | ----------------------------------------- |\n| \"coin\" | (string) | the chain on which the key is stored |\n| \"height\" | (numeric) | the height at which the key was stored |\n| \"expiration\" | (numeric) | the height at which the key will expire |\n| \"flags\" | (string) | the amount of days the key will be stored |\n| \"key\" | (numeric) | the stored key |\n| \"keylen\" | (numeric) | the length of the key |\n| \"value\" | (numeric) | the stored value |\n| \"valuesize\" | (string) | the length of the stored value |\n| \"fee\" | (string) | the transaction fee paid to store the key |\n| \"txid\" | (string) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-18" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-20" + }, + { + "text": "minerids", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "minerids" + }, + { + "text": "minerids height", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "minerids" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "minerids" + }, + { + "text": "minerids", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "minerids" + }, + { + "text": " method returns information about the notary nodes and external miners at a specific block height. The response will calculate results according to the 2000 blocks proceeding the indicated \"height\" block.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "minerids" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-21" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ------------------------------ |\n| heights | (number) | the block height for the query |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-21" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-19" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------- |\n| \"mined\": | | |\n| \"notaryid\" | (number) | the id of the specific notary node |\n| \"kmdaddress\" | (string) | the KMD address of the notary node |\n| \"pubkey\" | (string) | the public signing key of the notary node |\n| \"blocks\" | (number) | |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-19" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-21" + }, + { + "text": "notaries", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "notaries height timestamp", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "notaries height", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "notaries timestamp", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "notaries", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": " method returns the public key, BTC address, and KMD address for each Komodo notary node.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "Either or both of the height and timestamp parameters will suffice.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "notaries" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-22" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ------------------------------------------------ |\n| height | (number) | the block height desired for the query |\n| timestamp | (number) | the timestamp of the block desired for the query |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-22" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-20" + }, + { + "text": "| Name | Type | Description |\n| -------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| \"notaries\": [ ... ] | (array) | |\n| \"pubkey\" | (string) | the public signing key of the indicated notary node, used on the KMD network to create notary-node authorized transactions |\n| \"BTCaddress\" | (string) | the public BTC address the notary node uses on the BTC blockchain to create notarizations |\n| \"KMDaddress\" | (string) | the public KMD address the notary node uses on the KMD blockchain to create notarizations |\n| \"numnotaries\" | (number) | the number of notary nodes; typically this value is 64, but the value may vary on rare circumstances, such as during election seasons |\n| \"height\" | (number) | the block height number at which the notary-node information applies |\n| \"timestamp\" | (number) | the timestamp at which the notary-node information applies |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-20" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-22" + }, + { + "text": "verifychain", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": "verifychain ( checklevel numblocks )", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": "verifychain", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": " method verifies the coin daemon's blockchain database.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": "Depending on the state of your blockchain database and daemon, this call can take a prolonged period of time to complete.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifychain" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-23" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------------------------------------- | ------------------------------------------------ |\n| checklevel | (numeric, optional, 0-4, default=3) | indicates the thoroughness of block verification |\n| numblocks | (numeric, optional, default=288, 0=all) | indicates the number of blocks to verify |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-23" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-21" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | --------------------------------------- |\n| true/false | (boolean) | whether the verification was successful |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-21" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-23" + }, + { + "text": "verifytxoutproof", + "tagName": "h2", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifytxoutproof" + }, + { + "text": "verifytxoutproof \"proof_string\"", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifytxoutproof" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifytxoutproof" + }, + { + "text": "verifytxoutproof", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifytxoutproof" + }, + { + "text": " method verifies that a proof points to a transaction in a block. It returns the transaction to which the proof is committed, or it will throw an RPC error if the block is not in the current best chain.", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "verifytxoutproof" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-24" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------ | ------------------------------------------------ |\n| \"proof_string\" | (string, required) | the hex-encoded proof generated by gettxoutproof |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "arguments-24" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-22" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------------------------------------------------ |\n| \"txid\" | (string) | the transaction ids to which the proof commits; the array is empty if the proof is invalid |", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "response-22" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-24" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-24" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/blockchain", + "closestElementReference": "examples-24" + } + ], + "smart-chains/api/cclib": [ + { + "text": "CC Lib", + "tagName": "h1", + "path": "smart-chains/api/cclib", + "closestElementReference": "cc-lib" + }, + { + "text": "The following methods interact with Antara Modules that make use of the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cc-lib" + }, + { + "text": "-ac_cclib", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cc-lib" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cc-lib" + }, + { + "text": "cclib", + "tagName": "h2", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "cclib insert_method insert_evalcode \\\"[%22json_string%22, json_integer, ... ]\\\"", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "cclib", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": " method allows the user to interact with the dynamic Antara Module associated with ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "Each ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": " module has unique methods and json parameters associated, as well as unique responses.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib" + }, + { + "text": "cclib formatting", + "tagName": "h4", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": "Arguments for ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": "cclib", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": " methods are supplied as arrays. When executed in the terminal, the values for the array can be added in a normal fashion. However, when ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": "cclib", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": " methods are executed as a part of a script, the shell cannot parse the arrays without additional formatting.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclib-formatting" + }, + { + "text": "Array Formatting for Terminal", + "tagName": "h5", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": "In the terminal, the array is bound by ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": "''", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": " single-quotation characters and strings are bound by ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": " double-quotation characters.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": "Terminal format:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-terminal" + }, + { + "text": "Array Formatting for Bash Scripts", + "tagName": "h5", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "In a bash-script, the array is bound by ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "\\\"\\\"", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": " escaped double-quotation characters and strings within the array are bound by ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "%22 %22", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": " characters. (", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "0x22", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": " is the ASCII encoding for ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "\"", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": ".)", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "This format can be used in a terminal directly or in shell scripts, and therefore some developers may default to it, although the format is not always necessary.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "Script format:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "cclibinfo", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": " method returns a complete\nlist of available methods and their parameters for each unique ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "cclibinfo", + "tagName": "a", + "path": "smart-chains/api/cclib", + "closestElementReference": "array-formatting-for-bash-scripts" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ---------------- | ----------------------------------------------------------------- |\n| method | (string) | the unique name of the method |\n| evalcode | (decimal number) | the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments" + }, + { + "text": " of the module of interest |\n| json_params | (array) | the parameters to be supplied to the method, provided as an array |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------------------------------------------- | ---- | ----------- |\n| (the response for each ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response" + }, + { + "text": " is different) | | |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "Need to find the correct way to issue the command from jl", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples" + }, + { + "text": "cclibaddress", + "tagName": "h2", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "cclibaddress evalcode pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "cclibaddress", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": " method returns information about the addresses related to the specified ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": ", and according to the Antara Module associated with the specified ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": ". If no ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": " is provided, the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": " used to the launch the daemon is the default.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | ----------------------------------------------------------- |\n| evalcode | (decimal number) | the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-2" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-2" + }, + { + "text": " of the module of interest |\n| pubkey | (string, optional) | the public key related to the requested address information |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| CClibCCAddress | (string) | taking the parameter ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " as a modifier, this is the public address that corresponds to the Antara Module's privkey |\n| CCbalance | (number) | the amount of coins in the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "CClibCCAddress", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| CClibNormalAddress | (string) | the unmodified public address generated from the Antara Module's privkey |\n| CClibCCTokensAddress | (string) | this property is used for development purposes only and can otherwise be ignored |\n| myAddress | (string) | the normal address generated from the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| myCCAddress(CClib) | (string) | taking the parameter ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " as a modifier, this is the public address that corresponds to the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| PubkeyCCaddress(CClib) | (string) | taking the parameter ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " as a modifier, this is the public address that corresponds to the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| myCCaddress | (string) | taking the parameter ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "evalcode", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " as a modifier, this is the public address that corresponds to the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| myCCbalance | (number) | the amount of coins in ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "myCCaddress", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |\n| mybalance | (number) | the amount of coins in ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "myAddress", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-2" + }, + { + "text": "cclibinfo", + "tagName": "h2", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "cclibinfo", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "cclibinfo", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": " method displays all the methods of all the modules that are available in the current library.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "The library is loaded at runtime using the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "-ac_cclib", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "-ac_cclib", + "tagName": "a", + "path": "smart-chains/api/cclib", + "closestElementReference": "cclibinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command executed successfully |\n| CClib | (string) | the name of the given CClibrary |\n| methods | (array of json objects) | an array containing json objects, each of which describe a method of a module |\n| evalcode | (decimal number) | the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": " of the given Antara Module |\n| funcid | (character) | this value is a mnemonic in the ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": "OP_RETURN", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": " for all generated transactions; if the provided method does not generate a transaction, this value is a single character that has no relevant meaning |\n| name | (string) | the name of the Antara module |\n| method | (string) | the name of the method |\n| help | (string) | help for the method, including a description of the method's arguments |\n| params_required | (decimal number) | the number of parameters that are required for the method to succeed |\n| params_max | (decimal number) | the maximum number of parameters the method can accept |", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/cclib", + "closestElementReference": "examples-3" + } + ], + "smart-chains/api/control": [ + { + "text": "Control", + "tagName": "h1", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": "These work for KMDLabs chains now, must revisit after they are modded to work for KMD", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "control" + }, + { + "text": "getnotarysendmany", + "tagName": "h2", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "getnotarysendmany", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "getnotarysendmany", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": " method returns a sendmany JSON array with Raddresses of the current notaries.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "Examples:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "komodo-cli getnotarysendmany 10\ncurl --user myusername --data-binary '{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", \"method\": \"getnotarysendmany\", \"params\": [10] }' -H 'content-type: text/plain;' ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "http://127.0.0.1:7771/", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "http://127.0.0.1:7771/", + "tagName": "a", + "path": "smart-chains/api/control", + "closestElementReference": "getnotarysendmany" + }, + { + "text": "getiguanajson", + "tagName": "h2", + "path": "smart-chains/api/control", + "closestElementReference": "getiguanajson" + }, + { + "text": "getinfo", + "tagName": "h2", + "path": "smart-chains/api/control", + "closestElementReference": "getinfo" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getinfo" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getinfo" + }, + { + "text": " method returns an object containing various state info.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "getinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |\n| \"version\" | (numeric) | the server version |\n| \"protocolversion\" | (numeric) | the protocol version |\n| \"walletversion\" | (numeric) | the wallet version |\n| \"balance\" | (numeric) | the total balance of the wallet |\n| \"blocks\" | (numeric) | the current number of blocks processed in the server |\n| \"timeoffset\" | (numeric) | the time offset |\n| \"connections\" | (numeric) | the number of connections |\n| \"proxy\" | (string, optional) | the proxy used by the server |\n| \"difficulty\" | (numeric) | the current difficulty |\n| \"testnet\" | (boolean) | if the server is using testnet or not |\n| \"keypoololdest\" | (numeric) | the timestamp (seconds since GMT epoch) of the oldest pre-generated key in the key pool |\n| \"keypoolsize\" | (numeric) | how many new keys are pre-generated |\n| \"unlocked_until\" | (numeric) | the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked |\n| \"paytxfee\" | (numeric) | the transaction fee set in COIN/kB |\n| \"relayfee\" | (numeric) | minimum relay fee for non-free transactions in COIN/kB |\n| \"errors\" | (string) | any error messages |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples" + }, + { + "text": "help", + "tagName": "h2", + "path": "smart-chains/api/control", + "closestElementReference": "help" + }, + { + "text": "help ( \"command\" )", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "help" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "help" + }, + { + "text": "help", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "help" + }, + { + "text": " method lists all commands, or all information for a specified command.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "help" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | -------------------------------- |\n| \"command\" | (string, optional) | the command requiring assistance |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | -------------------------------- |\n| \"command\" | (string, optional) | the command requiring assistance |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/control", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-2" + }, + { + "text": "stop", + "tagName": "h2", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "stop", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "stop", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": " method instructs the coin daemon to shut down.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "The amount of time it takes to shut down the chain will vary depending on the chain's current state.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "Forcefully stopping the chain should be avoided, as it may corrupt the local\ndatabase. In the event of a corrupted database, the user will need to", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "resync", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "stop" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/control", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------------------------------ | ---- | ----------- |\n| Komodo server stopping | | |\n| [COIN] Komodo server stopping | | |", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/control", + "closestElementReference": "examples-3" + } + ], + "smart-chains/api/crosschain": [ + { + "text": "Cross-Chain API", + "tagName": "h1", + "path": "smart-chains/api/crosschain", + "closestElementReference": "cross-chain-api" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "introduction" + }, + { + "text": "The Crosschain API allows a user to transfer (or \"migrate\") assets from one chain to another. Compatible forms of assets include coins and tokens.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "introduction" + }, + { + "text": "The fundamental principle of migration is that a specific amount of assets are burned in the source chain and then the same specific amount of assets are created on the destination chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "introduction" + }, + { + "text": "Different methods of migration using the Komodo Platform", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "MoMoM notarized migration", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "\"MoMoM\" stands for \"Merkle root of Merkle roots of Merkle roots\"", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "\"MoMoM\" stands for \"Merkle root of Merkle roots of Merkle roots\"", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "An alternative migration method with notarization of the given burn transaction by notary operators (this is a backup solution to the above MoMoM method)", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "Self-managed import", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "different-methods-of-migration-using-the-komodo-platform" + }, + { + "text": "Crosschain API Flow", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "Make an ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "export", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": " or ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "burn", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": " transaction in the source chain.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "Create an \"import\" transaction for the burned value.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "This is created on the source chain, but the transaction is sent on the destination chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "This is created on the source chain, but the transaction is sent on the destination chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "Komodo's validation code checks that for the import transaction there exists a corresponding burn transaction, and that this transaction is not spent more than once.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "crosschain-api-flow" + }, + { + "text": "Requirement", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "The source and destination chains should have the same ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "CCid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": " parameter (", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "ac_cc", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "). The value of this parameter should be greater than 100; this indicates to the Komodo software that the coins on both chains are fungible with each other.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "ac_cc", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "In the examples, we use two chains. The source chain is ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "CFEKHOUND", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": " and the destination chain is ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "CFEKDRAGON", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirement" + }, + { + "text": "MoMoM Notarized Migration", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "The MoMoM notarized migration API allows the migration of coin or token value using Komodo's notary network. This facilitates the highly scalable multi-chain architecture of Smart Chains on the Komodo Platform.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "Notary nodes store \"fingerprints\" of the blocks belonging to the blockchains of the various assets in the main Komodo chain (KMD). The \"fingerprints\" can also be referred to as ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": ", or ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "merkle root of merkle roots", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "The fingerprints of fingerprints are delivered back into the blockchain of the assets as back notarizations. To learn more about the notarization process, ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "please visit this linked article", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "please visit this linked article", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-m-notarized-migration" + }, + { + "text": "Workflow of the MoMoM value migration", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "On the source chain, the user calls the method ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_createburntransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " and broadcasts the hex of the returned burn transaction (", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "BurnTxHex", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": ") using the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "sendrawtransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " method. The user also receives the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "payouts object", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " from this method", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_createburntransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "On the source chain, the user runs ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " with the hex value of the burn transaction and the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "payouts object", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " in hex format as arguments", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "On the main Komodo chain (KMD) the user calls ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": " with the import transaction in hex format which was received from the previous call as an argument.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "As a part of this process, the proof object for the burn transaction inside the import transaction is extended with MoMoM data. This allows verification of the burn transaction on the destination chain by using the standard Komodo notarization process without the need to create additional proof objects", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "As a part of this process, the proof object for the burn transaction inside the import transaction is extended with MoMoM data. This allows verification of the burn transaction on the destination chain by using the standard Komodo notarization process without the need to create additional proof objects", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "workflow-of-the-mo-mo-m-value-migration" + }, + { + "text": "migrate_createburntransaction", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "migrate_createburntransaction destChain destAddress amount [tokenid]", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "migrate_createburntransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " method creates a transaction burning a specific amount of coins or tokens. This method also creates a ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "payouts object", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " which is later used to create an import transaction for the value corresponding to the burned amount. This method should be called on the source chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "The method creates a burn transaction and returns it. This should be broadcast to the source chain using the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " method. After the burn transaction is successfully mined, the user might have to wait for some amount of time for the back notarization to reach the source chain. The back notarization contains the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " fingerprints of the mined block that contains the burn transaction.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "The hex value of the burn transaction along with the other returned value ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "payouts", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " are used as arguments for the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createburntransaction" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"destChain\" | (string, required) | the name of the destination chain |\n| \"destAddress\" | (string, required) | the address on the destination chain where coins are to be sent; the pubkey if tokens are to be sent |\n| \"amount\" | (numeric, required) | the amount in coins or tokens that should be burned on the source chain and created on the destination chain; if the indicated assets are tokens, the amount can be set only to 1, as only migration of non-fungible tokens are supported at this time |\n| \"tokenid\" | (string, optional) | token id in hex; if set, the software assumes that the user is migrating tokens |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ---------------------------------------------------------------------------------------------------------- |\n| \"payouts\" | (string) | a hex string of the created payouts; this value is passed into the migrate_createimporttransaction method |\n| \"BurnTxHex\" | (string) | a hex string of the returned burn transaction |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "Broadcast the transaction:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples" + }, + { + "text": "migrate_converttoexport", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "migrate_converttoexport rawtx dest_symbol", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "migrate_converttoexport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " method allows the user to create a customized burn transaction (as opposed to a fully automated burn transaction). This method converts a given transaction to a burn transaction.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The method adds proof data to the transaction, extracts the transaction vouts, calculates their value, and burns the value by sending it to an opreturn vout. This vout is then added to the created transaction. (An opreturn vout cannot be spent at a later date, and therefore funds sent to an opreturn vout are permanently burnt.)", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The other returned value, ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "payouts", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": ", is used in the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The caller of the method bears the responsibility to fund and sign the returned burn transaction using the methods ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "fundrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "signrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "fundrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "signrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The signed burn transaction must be broadcast to the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " source chain using the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "sendrawtansaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "sendrawtansaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "Limitations", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "migrate_converttoexport", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": " method supports only coins (tokens are not supported)", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "The burn transaction must be stored in the import transaction's opreturn vout. Because an opreturn's data size is limited to 10,001 bytes, we recommend that the user limit the burn transaction's size to 30% of the opreturn object", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-converttoexport" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | ---------------------------------- |\n| \"burntx\" | (string, required) | the burn transaction in hex format |\n| \"destChain\" | (string, required) | the name of the destination chain |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| \"payouts\" | (string) | a hex string of the created payouts; this is passed into the migrate_createimporttransaction method |\n| \"exportTx\" | (string) | a hex string of the returned burn transaction |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Create a raw transaction:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Convert it to an export transaction:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Sign the export transaction:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Broadcast the export transaction (using the method ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": ", with the option ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "allowhighfees", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": ")", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "To see the rest of the process when ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "migrate_converttoexport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": " is used, click the following button:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Create the import transaction using the signed export transaction that has been created:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Complete the import transaction by executing the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": " method on the KMD chain:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Broadcast this transaction on the destination chain:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-2" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "migrate_createimporttransaction burntx payouts [notaryTxid1]...[notaryTxidN]", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "The ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": " method performs the initial step in creating an import transaction. This method should be called on the source chain.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "This method returns a created import transaction in hex format. This string should be passed to the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": " method on the main KMD chain to be extended with the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "MoMoM", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": " proof object.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "When using the MoMoM backup solution (described later), the created import transaction is not passed to the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": " method.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "The user may need to wait for some time before the back notarizations objects are stored in the destination chain.", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createimporttransaction" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | -------------------------------------------------------------------------------------------------------------- |\n| \"burntx\" | (string, required) | the burn transaction in hex format returned from the previous method |\n| \"payouts\" | (string, required) | the payouts object in hex format returned from the previous method and used for creating an import transaction |\n| \"notaryTxid1\" | (string, optional) | the notary approval transaction id 1, to be passed if the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": " backup solution is used for notarization |\n| \"notaryTxidN\" | (string, optional) | the notary approval transaction id N, to be passed if the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": " backup solution is used for notarization |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | -------------------------------------------- |\n| \"ImportTxHex\" | (string) | the created import transaction in hex format |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-3" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "migrate_completeimporttransaction importtx", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "migrate_completeimporttransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": " method performs the finalizing step in creating an import transaction. This method should be called on the KMD (Komodo) chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "This method returns the import transaction in hex format, updated with the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": " proof object. This object provides confirmation that the burn transaction exists in the source chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "The finalized import transaction should be broadcast on the destination chain through the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "Komodo recommends that the user wait until the notarization objects are stored in the destination chain before broadcasting the import transaction. Otherwise an error message is returned.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "In the event that an error is returned, simply wait until the notarization objects are stored in the KMD chain and try again.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-completeimporttransaction" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | -------------------------------------------------------------------------------------------------------------- |\n| \"importtx\" | (string, required) | the import transaction in hex format created using the previous method |\n| \"offset\" | (string, optional) | the number of blocks below the current KMD(Komodo) blockchain height in which a ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-4" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-4" + }, + { + "text": " proof must be searched |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | --------------------------------------------------------------------------- |\n| \"ImportTxHex\" | (string) | import transaction in hex extended with the MoMoM proof of burn transaction |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "Broadcast the transaction:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-4" + }, + { + "text": "Notarization Backup Solution", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "notarization-backup-solution" + }, + { + "text": "There is an alternative solution to notarize burn transactions. This method is useful when the automated MoMoM notarization method fails or is slow.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "notarization-backup-solution" + }, + { + "text": "In this method, the user sends burn transactions to a special publishing resource that is monitored by the notary operators. The notary operators check this publishing resource, pick a burn transaction, validate and check the existence of the burn transaction in its source chain. The notary operators then create an approval transaction in the destination chain and return the transaction ids to the publishing resource.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "notarization-backup-solution" + }, + { + "text": "Alternative Transfer Method Flow", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "A user creates a burn transaction using the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createburntransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " method and publishes the transaction in hex format to a publishing resource", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "The publishing resource is monitored by the notary operators (was tested in the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "Komodo discord server", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": ")", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createburntransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "The publishing resource is monitored by the notary operators (was tested in the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "Komodo discord server", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": ")", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "Komodo discord server", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "The notary operators must collect the burn transaction, and check its validity and existence in the source chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "To check the transaction, the notary operators use the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_checkburntransactionsource", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "If the burn transaction is successfully validated, the notary operators must create approval transactions using the method ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createnotaryapprovaltransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " in the destination chain and publish their transaction ids back into the publishing resource", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "To check the transaction, the notary operators use the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_checkburntransactionsource", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "If the burn transaction is successfully validated, the notary operators must create approval transactions using the method ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createnotaryapprovaltransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " in the destination chain and publish their transaction ids back into the publishing resource", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createnotaryapprovaltransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "The user collects the transaction ids and calls the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": " method, passing the collected notary approval transaction ids as arguments in the destination chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "Currently, the user must have at least 5 successful notary-approval transactions for an import transaction to be considered as valid in the destination chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_createimporttransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "Currently, the user must have at least 5 successful notary-approval transactions for an import transaction to be considered as valid in the destination chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "alternative-transfer-method-flow" + }, + { + "text": "migrate_checkburntransactionsource", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-checkburntransactionsource" + }, + { + "text": "migrate_checkburntransactionsource burntxid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-checkburntransactionsource" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-checkburntransactionsource" + }, + { + "text": "migrate_checkburntransactionsource", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-checkburntransactionsource" + }, + { + "text": " method allows a notary operator to check the burn transaction's structure and verify its presence in the source chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-checkburntransactionsource" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------- |\n| \"burntxid\" | (string, required) | the burn transaction's id |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------ | ----------------------------------------------------------------- |\n| \"sourceSymbol\" | (string) | the source chain's name |\n| \"targetSymbol\" | (string) | the target chain's name |\n| \"targetCCid\" | (number) | the target chain's ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-5" + }, + { + "text": "CCid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-5" + }, + { + "text": " |\n| \"tokenid\" | (string, optional) | the token id if a token is to be migrated |\n| \"TxOutProof\" | (string) | the proof of the burn transaction's existence in the source chain |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-5" + }, + { + "text": "migrate_createnotaryapprovaltransaction", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "migrate_createnotaryapprovaltransaction burntxid txoutproof", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "A notary operator uses the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "migrate_createnotaryapprovaltransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": " method to create an approval transaction in the destination chain with the proof of the burn transaction's existence in the source chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "The returned notary approval transaction should be broadcast to the destination chain using the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "migrate-createnotaryapprovaltransaction" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------ | --------------------------------------------- |\n| \"burntxid\" | (string, required) | the burn transaction's id |\n| \"txoutproof\" | (string, required) | the proof of the burn transaction's existence |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ----------------------------------------- |\n| \"NotaryTxHex\" | (string) | notary approval transaction in hex format |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-6" + }, + { + "text": "Self Import API", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-api" + }, + { + "text": "The Self Import API is a special API available only in chains that need a pubkey to create new coins arbitrarily.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-api" + }, + { + "text": "selfimport", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "selfimport" + }, + { + "text": "selfimport destAddress amount", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "selfimport" + }, + { + "text": "The Self Import API allows a trusted pubkey to create more coins on the same chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "selfimport" + }, + { + "text": "Requirements", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": "The chain must have the custom parameters ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": "-ac_import=PUBKEY", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": " set to a pubkey which is allowed to create coins.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "requirements" + }, + { + "text": "Self Import Flow", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "For creating more coins in the chain with ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "-ac_import=PUBKEY", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " enabled, use the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "selfimport", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " method", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "The method returns a source transaction that contains a parameter with the amount of coins to create", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "The returned value is a proof of the trusted pubkey owner's intention to create new coins in the chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "The returned value is a proof of the trusted pubkey owner's intention to create new coins in the chain", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "The returned source transaction should be broadcast to the chain using the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "sendrawtransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " method. The source transaction spends a ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "txfee=10000 satoshis", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " from the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "-ac_pubkey", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " owner's uxtos", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "After the source transaction is mined, the import transaction should also be broadcasted to the chain with the ", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "sendrawtransaction", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": " method. After this transaction is mined, its vout contains the amount of created coins in the chosen destination address", + "tagName": "li", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "self-import-flow" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | -------------------------------------------------- |\n| \"destAddress\" | (string, required) | the address where the created coins should be sent |\n| \"amount\" | (number, required) | the amount in coins to create |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ------------------------------------ |\n| \"SourceTxHex\" | (string) | the source transaction in hex format |\n| \"ImportTxHex\" | (string) | the import transaction in hex format |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "To see the rest of the process of the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "migrate_converttoexport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": " method, click the following button.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-7" + }, + { + "text": "Node1", + "tagName": "h5", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "Start a chain with the parameters ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "-ac_import=PUBKEY", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "-ac_pubkey=", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": " (", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": " is the pubkey that can create coins at will ).", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "Import the privkey corresponding to the pubkey used when starting the chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1" + }, + { + "text": "Node2", + "tagName": "h5", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "Connect to the chain created in Node1.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "Notice that there is only ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " in the above command but not ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": ". That's because, ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "-ac_pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " is part of the chain parameters and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " is just ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "indicating the pubkey", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " to the particular daemon for various features.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "indicating the pubkey", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "Verify that ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "connections:1", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " from the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node2" + }, + { + "text": "Node1", + "tagName": "h5", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Start mining in Node1.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Verify that the balance increased by at least the amount specified in ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "-ac_supply", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": " through the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "getbalance", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Use the method ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "selfimport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": " to receive the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "SourceTxHex", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": " and the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "ImportTxHex", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Broadcast the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "SourceTxHex", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Response.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "After the above transaction is confirmed, Broadcast the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "ImportTxHex", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Response.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Confirm that the address given to the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "selfimport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": " command received the newly created funds.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "node1-2" + }, + { + "text": "Notary API", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "notary-api" + }, + { + "text": "The following methods are available to the notary nodes for retrieving the blockchain \"fingerprints\" and notarization data.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "notary-api" + }, + { + "text": "calc_MoM", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "calc-mo-m" + }, + { + "text": "calc_MoM height MoMdepth", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "calc-mo-m" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "calc-mo-m" + }, + { + "text": "calc_MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "calc-mo-m" + }, + { + "text": " method calculates the value of the merkle root of the blocks' merkle roots (MoM), starting from the block of the indicated height for the chosen depth.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "calc-mo-m" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------------------------------------------ |\n| \"height\" | (number, required) | the block height from which the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-8" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-8" + }, + { + "text": " calculation must begin |\n| \"MoMdepth\" | (number, required) | the number of blocks to include in the MoM calculation |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------ |\n| \"coin\" | (string) | the chain's name |\n| \"height\" | (string) | the starting block height |\n| \"MoMdepth\" | (number) | the number of blocks included in the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": " calculation |\n| \"MoM\" | (string) | the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": " value |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-8" + }, + { + "text": "MoMoMdata", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": "MoMoMdata symbol kmdheight ccid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": "MoMoMdata", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": " method calculates the value of the merkle root of merkle roots of the blocks' merkle roots (MoMoM), starting from the block of the indicated height for the data of the indicated chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": "Execute this method on the KMD chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "mo-mo-mdata" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | --------------------------------------------------------------- |\n| \"symbol\" | (string, required) | the chain's name whose data's ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": "MoMoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": " value is to be calculated |\n| \"kmdheight\" | (number, required) | the number of blocks to include in the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": " calculation |\n| \"ccid\" | (number, required) | the chain's CCid |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | -------- | --------------------------------------------------------- |\n| \"coin\" | (string) | the chain's name |\n| \"kmdheight\" | (string) | the starting block's height |\n| \"ccid\" | (number) | the chain's ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": "CCid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": " |\n| \"MoMs\" | (string) | the array of ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": " values |\n| \"notarizationHash\" | (string) | the first found notarization transaction id for the chain |\n| \"MoMoM\" | (string) | the MoMoM value |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-9" + }, + { + "text": "assetchainproof", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "assetchainproof txid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "assetchainproof", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": " method scans the chain for the back ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "MoM", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": " notarization for a transaction corresponding to the given transaction id and returns a proof object with MoM branch. Scanning is performed from the height up to the chain tip, with a limit of ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "1440", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "assetchainproof" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ------------------------------------------------------------ |\n| \"txid\" | (string, required) | the transaction id for which a proof object must be returned |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| -------------- | -------- | ------------------------------------------------------- |\n| \"proof object\" | (string) | the returned proof object with MoM branch in hex format |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-10" + }, + { + "text": "getNotarisationsForBlock", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "get-notarisations-for-block" + }, + { + "text": "getNotarisationsForBlock height", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "get-notarisations-for-block" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "get-notarisations-for-block" + }, + { + "text": "getNotarisationsForBlock", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "get-notarisations-for-block" + }, + { + "text": " method returns the notarization transactions within the block of the given block hash.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "get-notarisations-for-block" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | -------------------------------------------- |\n| \"height\" | (number, required) | the block number of the block to be searched |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | -------- | -------------------------------------------------------------------------------------------------------------------------- |\n| \"Notary Cluster\" | (string) | refers to the notary group which performed the notarizations; KMD for the main Komodo notaries, LABS for the LABS notaries |\n| \"txid\" | (string) | the notarization transaction's id |\n| \"chain\" | (string) | the chain that has been notarized |\n| \"height\" | (number) | the notarization transaction's block height |\n| \"blockhash\" | (string) | the hash of the notarization transaction's block |\n| \"notaries\" | (array) | the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-11" + }, + { + "text": "ids", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-11" + }, + { + "text": " of the notaries who performed the notarization |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-11" + }, + { + "text": "ids", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-11" + }, + { + "text": "scanNotarisationsDB", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "scan-notarisations-db" + }, + { + "text": "scanNotarisationsDB blockHeight symbol [blocksLimit=1440]", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "scan-notarisations-db" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "scan-notarisations-db" + }, + { + "text": "scanNotarisationsDB", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "scan-notarisations-db" + }, + { + "text": " method scans the notarization database backwards from the given block height for a notarization of the chain with the given name (symbol).", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "scan-notarisations-db" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | --------------------------------------------------------------------- |\n| \"blockHeight\" | (number, required) | the starting block height from which notarizations are to be searched |\n| \"symbol\" | (string, required) | the chain's name whose notarizations are to be searched |\n| \"blocksLimit\" | (number, optional) | an optional block depth to search for notarizations |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ----------------------------------------------------------------------- |\n| \"height\" | (number) | the block height of the notarization transaction id that has been found |\n| \"hash\" | (string) | the hash of the notarization transaction id that has been found |\n| \"opreturn\" | (string) | the notarization data in hex format |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-12" + }, + { + "text": "User API", + "tagName": "h2", + "path": "smart-chains/api/crosschain", + "closestElementReference": "user-api" + }, + { + "text": "The following are utility methods available to user. These methods assist in retrieving information about burn and import transactions.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "user-api" + }, + { + "text": "getimports", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getimports" + }, + { + "text": "getimports hash|height", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getimports" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getimports" + }, + { + "text": "getimports", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getimports" + }, + { + "text": " method lists import transactions in the indicated block of the chain.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getimports" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-13" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ---------------------------- | ----------------------------------------- |\n| \"hash or height\" | (string or number, required) | the block's hash or height to be searched |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-13" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-13" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ----------------- | --------------------------------------------------- |\n| \"imports\" | (array) | |\n| \"txid\" | (string) | the import transaction id |\n| \"amount\" | (number) | the import transaction's value in coins |\n| \"export\" | (json) | the export or burn transaction's infomation |\n| \"txid\" | (string) | the export transaction's id |\n| \"amount\" | (number) | the export transaction's value |\n| \"txid\" | (string) | the export transaction's id |\n| \"source\" | (string) | the source chain's name |\n| \"tokenid\" | (string,optional) | the source chain's token id, if tokens are imported |\n| \"TotalImported\" | (number) | the total imported amount in coins |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-13" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "If the transaction id of an import is known, use the ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": " method to retrieve its block hash.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "gettransaction", + "tagName": "a", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-13" + }, + { + "text": "getwalletburntransactions", + "tagName": "h3", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getwalletburntransactions" + }, + { + "text": "getwalletburntransactions \"count\"", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getwalletburntransactions" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getwalletburntransactions" + }, + { + "text": "getwalletburntransactions", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getwalletburntransactions" + }, + { + "text": " method lists all the burn transactions in the current wallet.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "getwalletburntransactions" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-14" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------ | -------------------------------------------------------------------------------------------- |\n| \"count\" | (number, optional) | the number of burn transactions to be returned; if omitted, defaults to 10 burn transactions |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "arguments-14" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-14" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------ | ---------------------------------- |\n| \"txid\" | (string) | the burn transaction's id |\n| \"burnedAmount\" | (number) | the burned value in coins |\n| \"tokenid\" | (string, optional) | the token id, if tokens are burned |\n| \"targetSymbol\" | (string) | the target chain's name |\n| \"targetCCid\" | (number) | the target chain's ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-14" + }, + { + "text": "CCid", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-14" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "response-14" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/crosschain", + "closestElementReference": "examples-14" + } + ], + "smart-chains/api/disclosure": [ + { + "text": "Disclosure", + "tagName": "h1", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "disclosure" + }, + { + "text": "z_getpaymentdisclosure", + "tagName": "h2", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": "EXPERIMENTAL FEATURE: Payment disclosure is currently DISABLED. This call\nalways fails.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": "z_getpaymentdisclosure transaction js_index output_index (\"message\")", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": "z_getpaymentdisclosure", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": " method generates a payment disclosure for a given joinsplit output.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-getpaymentdisclosure" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/disclosure", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------ | --------------------------------------------------- |\n| \"txid\" | (string, required) | (in development) ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "arguments" + }, + { + "text": " |\n| \"js_index\" | (string, required) | |\n| \"output_index\" | (string, required) | |\n| \"message\" | (string, optional) | |", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/disclosure", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | -------- | --------------------------------------- |\n| \"paymentdisclosure\" | (string) | a hex data string, with a \"zpd:\" prefix |", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": " in your coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples" + }, + { + "text": "z_validatepaymentdisclosure", + "tagName": "h2", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": "z_validatepaymentdisclosure \"paymentdisclosure\"", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": "z_validatepaymentdisclosure", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": " method validates a payment disclosure.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": "EXPERIMENTAL FEATURE: Payment disclosure is currently DISABLED. This call always fails.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "z-validatepaymentdisclosure" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/disclosure", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | ------------------ | ----------------------------------- |\n| \"paymentdisclosure\" | (string, required) | hex data string, with \"zpd:\" prefix |", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/disclosure", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| -------------------- | ---- | ----------- |\n| (currently disabled) | | |", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/disclosure", + "closestElementReference": "examples-2" + } + ], + "smart-chains/api/generate": [ + { + "text": "Generating", + "tagName": "h1", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generating" + }, + { + "text": "generate", + "tagName": "h2", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "generate numblocks", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "This function can only be used in the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "regtest", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": " mode (for testing\npurposes).", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "generate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": " method instructs the coin daemon to immediately mine the indicated number of blocks.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "generate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------- | --------- | ---------------------------------------- |\n| numblocks | (numeric) | the desired number of blocks to generate |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------- | -------------------------- |\n| blockhashes | (array) | hashes of blocks generated |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/generate", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples" + }, + { + "text": "getgenerate", + "tagName": "h2", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "getgenerate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "getgenerate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": " method returns a boolean value indicating the server's mining status.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "The default value is false.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "gen", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "getgenerate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------ | ----------- |\n| (none) | (none) | |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ----------------------------------------------------- |\n| true/false | (boolean) | indicates whether the server is set to generate coins |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-2" + }, + { + "text": "setgenerate", + "tagName": "h2", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "setgenerate generate ( genproclimit )", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " method allows the user to set the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "generate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " property in the coin daemon to ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": ", thus turning generation (mining/staking) on or off.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "Generation is limited to ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "genproclimit", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " processors. Set ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "genproclimit", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " to ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " to use maximum available processors.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "genproclimit", + "tagName": "a", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "See also the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "getgenerate", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " method to\nquery the current setting, and\n", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "genproclimit", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": " for\nsetting the default number of processors the daemon uses through the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "\nfile.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "getgenerate", + "tagName": "a", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "genproclimit", + "tagName": "a", + "path": "smart-chains/api/generate", + "closestElementReference": "setgenerate" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------- | ------------------------------------------------------------------------------- |\n| generate | (boolean, required) | set to true to turn on generation; set to off to turn off generation |\n| genproclimit | (numeric, optional) | set the processor limit for when generation is on; use value \"-1\" for unlimited |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------ | ----------- |\n| (none) | (none) | |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-3" + }, + { + "text": "Activate mining with maximum available processors", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-mining-with-maximum-available-processors" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-mining-with-maximum-available-processors" + }, + { + "text": "Activate staking", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-staking" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-staking" + }, + { + "text": "Activate mining with 4 threads", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-mining-with-4-threads" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "activate-mining-with-4-threads" + }, + { + "text": "Check the setting", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "check-the-setting" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "check-the-setting" + }, + { + "text": "Turn off generation", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "turn-off-generation" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turn-off-generation" + }, + { + "text": "Turning the setting on via json RPC", + "tagName": "h5", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "FIXME: get confirmation from alright", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "setstakingsplit", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "setstakingsplit split_percentage", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "setstakingsplit", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " method allows the user to decide what happens to a UTXO that is successfully able to stake a block in the POS64 staking system (i.e. a Smart Chain started using the ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "-ac_staked", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " parameter).", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "-ac_staked", + "tagName": "a", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "The argument ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "split_percentage", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " defines the percentage of the staking UTXO value to leave in the same address. The rest of of the staking UTXO value is added to the new UTXO created to the coinbase address.", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "Examples:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "split_percentage", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " = ", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " merges the staking UTXO value and the coinbase value to the coinbase address", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "split_percentage", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " = ", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "50", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " takes half of the staking UTXO value and sends it to the coinbase address", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "split_percentage", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " = ", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "100", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": " does not change the staking UTXO", + "tagName": "li", + "path": "smart-chains/api/generate", + "closestElementReference": "turning-the-setting-on-via-json-rpc" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| split_percentage | (numeric, required) | allowed value range: ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": " to ", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": "100", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": "; the percentage of the staking UTXO value to leave in the same address; the rest of of the staking UTXO value is added to the new UTXO created to the coinbase address |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/generate", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------- | --------------------- |\n| split_percentage | (numeric) | the supplied argument |", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/generate", + "closestElementReference": "examples-4" + } + ], + "smart-chains/api": [ + { + "text": "Smart Chain API", + "tagName": "h1", + "path": "smart-chains/api", + "closestElementReference": "smart-chain-api" + }, + { + "text": "This section of the documentation contains descriptions of the various default methods available for Smart Chains.", + "tagName": "p", + "path": "smart-chains/api", + "closestElementReference": "smart-chain-api" + } + ], + "smart-chains/api/jumblr": [ + { + "text": "Jumblr", + "tagName": "h1", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "At this time, all zero-knowledge transaction and Jumblr functionality on the main KMD chain is disabled.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "Other Smart Chains in the Komodo ecosystem offer zero-knowledge transaction functionality. However, no Smart Chain currently offers Jumblr, and therefore this documentation is currently deprecated.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "Please check with the developers of your desired Smart Chain to learn more.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr" + }, + { + "text": "Basic Instructions", + "tagName": "h2", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Install Komodo following the ", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "installation guides", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": " and change into the ", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "komodod", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": " subdirectory using:", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "installation guides", + "tagName": "a", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Start the daemon:", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Designate a KMD address with at least 10.024 KMD funds:", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "The jumblr process continues until there are less than ~ 10.024 KMD in the\ndeposit address.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Designate a destination address for your funds. This should be a transparent address that you are keeping secret:", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Leave your node running until the balance in your first address reaches below 10.024 KMD and the destination address receives the correct amount.", + "tagName": "li", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "Jumblr is created to be resistant against time-based analysis. Because of\nthis, Jumblr is purposefully designed not to be fast. You will need to leave\nyour node running for several hours for the process to finish.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "basic-instructions" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples" + }, + { + "text": "Designate your deposit address.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples" + }, + { + "text": "Designate your secret destination address.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples" + }, + { + "text": "jumblr_deposit", + "tagName": "h2", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": "jumblr_deposit \"depositaddress\"", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": "jubmlr_deposit", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": " method indicates the address from which Jumblr should withdraw funds. There should be at least 10.024 KMD in this address. Jumblr will withdraw funds in increments of 10, 100, or 7770 KMD.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": "While shielded z_address technology is available on all KMD-based Smart\nChains, the Jumblr engine and methods are only available on the KMD mainnet.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-deposit" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------ | ------------------------------------------------- |\n| \"depositaddress\" | (string, required) | the address from which Jumblr will withdraw funds |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-2" + }, + { + "text": "jumblr_pause", + "tagName": "h2", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "jumblr_pause", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "jumblr_pause", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": " method instructs Jumblr to temporarily pause the privacy-shielding process.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "jumblr_resume", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-pause" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-3" + }, + { + "text": "jumblr_resume", + "tagName": "h2", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "jumblr_resume", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "jumblr_resume", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": " method instructs Jumblr to resume the privacy-shielding process.", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "jumblr_pause", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-resume" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-4" + }, + { + "text": "jumblr_secret", + "tagName": "h2", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "jumblr_secret \"secretaddress\"", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "jumblr_secret", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": " method indicates to Jumblr the final t destination address. This should be a separate t address that has no connection to the ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": " file of your ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "jumblr_deposit", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": " address. Ideally, you should only access the final ", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "jumblr_secret", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": " address via a separate node, and with other layers of privacy (VPN, Tor, etc.).", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "jumblr-secret" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------ | ----------------------------------- |\n| \"secretaddress\" | (string, required) | the destination transparent address |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/jumblr", + "closestElementReference": "examples-5" + } + ], + "smart-chains/api/mining": [ + { + "text": "Mining", + "tagName": "h1", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "mining" + }, + { + "text": "getblocksubsidy", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocksubsidy" + }, + { + "text": "getblocksubsidy height_number", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocksubsidy" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocksubsidy" + }, + { + "text": "getblocksubsidy", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocksubsidy" + }, + { + "text": " method returns the block-subsidy reward. The resulting calculation takes into account the mining slow start. This method can be used in conjunction with custom mining rewards designed by the developers of a KMD-based Smart Chain.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocksubsidy" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------- | ------------------------------------------------------------------------------------------------------------- |\n| height | (numeric, optional) | the block height; if the block height is not provided, the method defaults to the current height of the chain |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | ------------------------ |\n| \"miner\" | (numeric) | the mining reward amount |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples" + }, + { + "text": "getblocktemplate", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "getblocktemplate ( \"jsonrequestobject\" )", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "See ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "the Bitcoin wiki", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": " for the\nfull specification.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "getblocktemplate", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": " method returns data that is necessary to construct a block.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "If the request parameters include a ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "mode", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": " key, it is used to explicitly select between the default 'template' request, a 'proposal' or 'disablecb'.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getblocktemplate" + }, + { + "text": "A Note on Unique Mining Circumstances", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "There are many features in the Komodo Ecosystem that can make a Smart Chain's daemon produce non-standard coinbase transactions. Examples include a Smart Chain parameter that creates new coins for a specific pubkey in every block or a CC module that adds outputs to the coinbase transaction.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "This can be dealt using a mode called ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "disablecb", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "Usage:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "The block template produced using this mode doesn't have the ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "\"coinbasetxn\": { ... }", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": " json object but adds the coinbase transaction to the ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "\"transactions\":[ ... ]", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": " array, just like a regular transaction.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "Now the pool software can use the ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "\"transactions\":[ ... ]", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": " array to create a block and take fees in the payment processor.\nTeam member, ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "Blackjok3r", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": ", developed a coinbase-override method for this purpose. Please see ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "this repo", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": " for details.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "this repo", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "a-note-on-unique-mining-circumstances" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------------------ | ------------------ | -------------------------------------------------------------------------------------------------------------- |\n| \"jsonrequestobject\" : { ... } | (string, optional) | a json object in the following spec |\n| \"mode\" | (string, optional) | this must be set to \"template\" or omitted |\n| \"capabilities\": [ ... ] | (array, optional) | a list of strings |\n| \"support\" | (string) | client side supported features: \"longpoll\", \"coinbasetxn\", \"coinbasevalue\", \"proposal\", \"serverlist\", \"workid\" |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ----------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"version\" | (numeric) | the block version |\n| \"previousblockhash\" | (string) | the hash of current highest block |\n| \"finalsaplingroothash\" | (string) | the hash of the final sapling root |\n| \"transactions\":[ ... ] | (array) | the contents of non-coinbase transactions that should be included in the next block |\n| \"data\" | (string) | transaction data encoded in hexadecimal (byte-for-byte) |\n| \"hash\" | (string) | the hash/id encoded in little-endian hexadecimal |\n| \"depends\" : [ ... ] | (array) | an array of numbers |\n| number | (numeric) | the indexes of transactions that must be present in the final block if this transaction is present in the final block; the index of the array of transactions starts with \"1\" |\n| \"fee\" | (numeric) | the difference in value between transaction inputs and outputs in satoshis; for coinbase transactions, this is the negative number of the total collected block fees, not including the block subsidy; if a key is not present, the fee is unknown and clients MUST NOT assume it is not present |\n| \"sigops\" | (numeric) | the total number of sigops, as counted for the purposes of block limits; if a key is not present, the sigop count is unknown and clients MUST NOT assume they are not present. |\n| \"required\" | (boolean) | if provided and true, this transaction must be in the final block |\n| \"coinbasetxn\": { ... } | (json object) | information for the coinbase transaction |\n| \"longpollid\" | (string) | the last seen longpollid when this response was sent by the server |\n| \"data\" | (string) | transaction data encoded in hexadecimal (byte-for-byte) |\n| \"hash\" | (string) | the hash/id encoded in little-endian hexadecimal |\n| \"depends\" : [ ... ] | (array) | an array of numbers |\n| \"fee\" | (numeric) | the difference in value between transaction inputs and outputs in satoshis; for coinbase transactions, this is the negative number of the total collected block fees, not including the block subsidy; if a key is not present, the fee is unknown and clients MUST NOT assume it is not present |\n| \"sigops\" | (numeric) | the total number of sigops, as counted for the purposes of block limits; if a key is not present, the sigop count is unknown and clients MUST NOT assume they are not present. |\n| \"foundersreward\" | (numeric) | the founder's reward that should be paid out in this block; this key is present only in the blocks that payout the founder's reward; present only in chains with ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-2" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-2" + }, + { + "text": " enabled |\n| \"coinbasevalue\" | (numeric) | the value of the coinbase transaction (in satoshis) |\n| \"required\" | (boolean) | if provided and true, this transaction must be in the final block |\n| \"target\" | (string) | the hash target |\n| \"mintime\" | (numeric) | the minimum timestamp appropriate for next block time in seconds since epoch (Jan 1 1970 GMT) |\n| \"mutable\": [ ... ] | (array of strings) | a list of ways the block template may be changed |\n| \"value\" | (string) | a way the block template may be changed, e.g. \"time\", \"transactions\", \"prevblock\" |\n| \"noncerange\" | (string) | a range of valid nonces |\n| \"sigoplimit\" | (numeric) | the limit of sigops in blocks |\n| \"sizelimit\" | (numeric) | the limit of block size |\n| \"curtime\" | (numeric) | current timestamp in seconds since epoch (Jan 1 1970 GMT) |\n| \"bits\" | (string) | the compressed target of the next block |\n| \"height\" | (numeric) | the height of the next block |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-2" + }, + { + "text": "ac_founders", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-2" + }, + { + "text": "getlocalsolps", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": "getlocalsolps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": "getlocalsolps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": " method returns the average local solutions per second since this node was started.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": "This is the same information shown on the metrics screen (if enabled).", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getlocalsolps" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | -------------------------------- |\n| \"data\" | (numeric) | the solutions-per-second average |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-3" + }, + { + "text": "getmininginfo", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getmininginfo" + }, + { + "text": "getmininginfo", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getmininginfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getmininginfo" + }, + { + "text": "getmininginfo", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getmininginfo" + }, + { + "text": " method returns a json object containing mining-related information.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getmininginfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------ | ----------- |\n| (none) | (none) | |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"blocks\" | (numeric) | the current block |\n| \"currentblocksize\" | (numeric) | the last block size |\n| \"currentblocktx\" | (numeric) | the last block transaction |\n| \"difficulty\" | (numeric) | the current difficulty |\n| \"errors\": | | |\n| \"generate\" | (boolean) | if the generation is on or off (see ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "getgenerate", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": " calls) |\n| \"genproclimit\" | (numeric) | the processor limit for generation; ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": " if no generation (see ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "getgenerate", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": " calls) |\n| \"localsolps\" | (numeric) | the average local solution rate (solutions per second) since this node was started |\n| \"networksolps\" | (numeric) | the estimated network solution rate (solutions per second) |\n| \"pooledtx\": | | |\n| \"testnet\" | (boolean) | if using testnet or not |\n| \"chain\" | (string) | the current network name as defined in BIP70 (main, test, regtest) |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "getgenerate", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "getgenerate", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-4" + }, + { + "text": "getnetworkhashps", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "getnetworkhashps ( blocks height )", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "DEPRECATED: Use ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "getnetworksolps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " instead.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "getnetworkhashps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " method returns the estimated network solutions per second based on the last ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "n", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "Pass in ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " value to override the default number of blocks. Passing in ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " will return a value based on the average ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "hashps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " of the relevant difficulty window.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "Pass in ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": " to estimate the network speed at the time when a certain block was found.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworkhashps" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------------------------------- | ------------------------------------------------------------------------------------------ |\n| blocks | (numeric, optional, default=120) | the number of blocks (use ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-5" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-5" + }, + { + "text": " to calculate over the relevant difficulty averaging window) |\n| height | (numeric, optional, default=-1) | the block height that corresponds to the requested data |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | --------------------------------- |\n| data | (numeric) | the solutions-per-second estimate |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-5" + }, + { + "text": "getnetworksolps", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "getnetworksolps ( blocks height )", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "getnetworksolps", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": " method returns the estimated network solutions per second based on the last ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "n", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "Pass in ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": " to override the default number of blocks. Use -1 to calculate according to the relevant difficulty averaging window.\nPass in ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": " to estimate the network speed at the time when a certain block was found.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "getnetworksolps" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------------------------------- | ------------------------------------------------------------------------------------------------- |\n| blocks | (numeric, optional, default=120) | the number of blocks; use ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-6" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-6" + }, + { + "text": " to calculate according to the relevant difficulty averaging window |\n| height | (numeric, optional, default=-1) | the block height that corresponds to the requested data |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | ------------------------------- |\n| data | (numeric) | solutions per second, estimated |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-6" + }, + { + "text": "prioritisetransaction", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "prioritisetransaction \"transaction_id\" priority_delta fee_delta", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "prioritisetransaction", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": " method instructs the daemon to accept the indicated transaction into mined blocks at a higher (or lower) priority. The transaction selection algorithm considers the transaction as it would have a higher priority.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "This method is inherited from the original Bitcoin protocol, of which KMD is a\nfork (via Zcash). For more examples regarding this method, please see ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "the\nlinked\ndocumentation.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "the\nlinked\ndocumentation.", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "prioritisetransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"transaction_id\" | (string, required) | the transaction id |\n| priority_delta | (numeric, required) | the priority to add or subtract (if negative). The transaction selection algorithm assigns the tx a higher or lower priority. The transaction priority calculation: ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-7" + }, + { + "text": "coinage * value_in_satoshis / txsize", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-7" + }, + { + "text": " |\n| fee_delta | (numeric, required) | the fee value in satoshis to add or subtract (if negative); the fee is not actually paid, only the algorithm for selecting transactions into a block considers the transaction as if it paid a higher (or lower) fee. |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | ------------ |\n| true | (boolean) | returns true |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-7" + }, + { + "text": "submitblock", + "tagName": "h2", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "submitblock \"hexdata\" ( \"jsonparametersobject\" )", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "submitblock", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": " method instructs the daemon to propose a new block to the network.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "jsonparametersobject", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": " parameter is currently ignored. See ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "the\nlinked\ndocumentation", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "\nfor full specification details.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "the\nlinked\ndocumentation", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "Note: for more information on ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "submitblock", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": " parameters and results, see\n", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "the linked\ndocumentation", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "the linked\ndocumentation", + "tagName": "a", + "path": "smart-chains/api/mining", + "closestElementReference": "submitblock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| --------------------------------- | ---------------------------- | --------------------------------------------------------------------- |\n| \"hexdata\" | (string, required) | the hex-encoded block data to submit |\n| \"jsonparametersobject\" : { ... } | (string, optional) | object of optional parameters |\n| \"workid\" | (string, sometimes optional) | if the server provides a workid, it MUST be included with submissions |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/mining", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | ---- | ------------------------------------------------------------------------------------ |\n| \"duplicate\" | | the node already has a valid copy of the block |\n| \"duplicate-invalid\" | | the node already has the block, but it is invalid |\n| \"duplicate-inconclusive\" | | the node already has the block but has not validated it |\n| \"inconclusive\" | | the node has not validated the block, it may not be on the node's current best chain |\n| \"rejected\" | | the block was rejected as invalid |", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/mining", + "closestElementReference": "examples-8" + } + ], + "smart-chains/api/network": [ + { + "text": "Network", + "tagName": "h1", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "network" + }, + { + "text": "addnode", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "addnode" + }, + { + "text": "addnode \"node\" \"add|remove|onetry\"", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "addnode" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "addnode" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "addnode" + }, + { + "text": " method attempts to add or remove a node from the addnode list, or to make a single attempt to connect to a node.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "addnode" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------- |\n| \"node\" | (string, required) | the node (see ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments" + }, + { + "text": " for nodes) |\n| \"command\" | (string, required) | 'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments" + }, + { + "text": "getpeerinfo", + "tagName": "a", + "path": "smart-chains/api/network", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples" + }, + { + "text": "clearbanned", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "clearbanned" + }, + { + "text": "clearbanned", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "clearbanned" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "clearbanned" + }, + { + "text": "clearbanned", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "clearbanned" + }, + { + "text": " method clears all banned IPs.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "clearbanned" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-2" + }, + { + "text": "disconnectnode", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "disconnectnode \"node\"", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "disconnectnode", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": " method instructs the daemon to immediately disconnect from the specified node.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": " to determine the result.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "disconnectnode" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ---------------------------------------------------------------------------------------- |\n| \"node\" | (string, required) | the node's address (see ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-3" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-3" + }, + { + "text": " for nodes) |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-3" + }, + { + "text": "getpeerinfo", + "tagName": "a", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-3" + }, + { + "text": "getaddednodeinfo", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "getaddednodeinfo dns ( \"node\" )", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "getaddednodeinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": " method returns information about the given added node, or all added nodes.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "If ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "dns", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": ", only a list of added nodes is returned. Otherwise, connection information is also provided.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "Nodes added via ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "onetry", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": " are not listed here.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getaddednodeinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------- | --------------------------------------------------------------------------------------------------------- |\n| dns | (boolean, required) | if false, only a list of added nodes will be provided; otherwise, connection information is also provided |\n| \"node\" | (string, optional) | if provided, the method returns information about this specific node; otherwise, all nodes are returned |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ---------------------- | ---------------- | ---------------------------------------------------------------- |\n| \"addednode\" | (string) | the node ip address |\n| \"connected\" | (boolean) | if connected |\n| \"addresses\" : [ ... ] | (array of jsons) | |\n| \"address\" | (string) | the server host and port |\n| \"connected\" | (string) | \"connected\" accepts two possible values: \"inbound\" or \"outbound\" |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-4" + }, + { + "text": "getconnectioncount", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getconnectioncount" + }, + { + "text": "getconnectioncount", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getconnectioncount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getconnectioncount" + }, + { + "text": "getconnectioncount", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getconnectioncount" + }, + { + "text": " method returns the number of connections to other nodes.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getconnectioncount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | -------------------- |\n| n | (numeric) | the connection count |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-5" + }, + { + "text": "getdeprecationinfo", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getdeprecationinfo" + }, + { + "text": "getdeprecationinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getdeprecationinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getdeprecationinfo" + }, + { + "text": "getdeprecationinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getdeprecationinfo" + }, + { + "text": " method returns an object containing current version and deprecation block height.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getdeprecationinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"version\" | (numeric) | the server version |\n| \"subversion\" | (string) | the server sub-version string (i.e. \"/MagicBean:x.y.z[-v]/\") |\n| \"deprecationheight\" | (numeric) | the block height at which this version will deprecate and shut down (unless ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-6" + }, + { + "text": "disabledeprecation", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-6" + }, + { + "text": " is set) |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-6" + }, + { + "text": "disabledeprecation", + "tagName": "a", + "path": "smart-chains/api/network", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-6" + }, + { + "text": "getnettotals", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getnettotals" + }, + { + "text": "getnettotals", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnettotals" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnettotals" + }, + { + "text": "getnettotals", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnettotals" + }, + { + "text": " method returns information about network traffic, including bytes in, bytes out, and current time.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnettotals" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | --------- | -------------------- |\n| \"totalbytesrecv\" | (numeric) | total bytes received |\n| \"totalbytessent\" | (numeric) | total bytes sent |\n| \"timemillis\" | (numeric) | total cpu time |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-7" + }, + { + "text": "getnetworkinfo", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getnetworkinfo" + }, + { + "text": "getnetworkinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnetworkinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnetworkinfo" + }, + { + "text": "getnetworkinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnetworkinfo" + }, + { + "text": " method returns an object containing various state info regarding p2p networking.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getnetworkinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| -------------------------- | ---------------- | ------------------------------------------------------------------------------------ |\n| \"version\" | (numeric) | the server version |\n| \"subversion\" | (string) | the server subversion string (i.e. \"/MagicBean:x.y.z[-v]/\") |\n| \"protocolversion\" | (numeric) | the protocol version |\n| \"localservices\" | (string) | the services we offer to the network |\n| \"timeoffset\" | (numeric) | the time offset |\n| \"connections\" | (numeric) | the number of connections |\n| \"networks\": [ ... ] | (array of jsons) | information per network |\n| \"name\" | (string) | network (ipv4, ipv6 or onion) |\n| \"limited\" | (boolean) | whether the network is limited using -onlynet |\n| \"reachable\" | (boolean) | whether the network is reachable |\n| \"proxy\" | (string) | (submitted as \"host:port\") the proxy that is used for this network, or empty if none |\n| \"relayfee\" | (numeric) | minimum relay fee for non-free transactions in COIN/kB |\n| \"localaddresses\": [ ... ] | (array of jsons) | list of local addresses |\n| \"address\" | (string) | network address |\n| \"port\" | (numeric) | network port |\n| \"score\" | (numeric) | relative score |\n| \"warnings\" | (string) | any network warnings (such as alert messages) |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-8" + }, + { + "text": "getpeerinfo", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "getpeerinfo" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getpeerinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getpeerinfo" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getpeerinfo" + }, + { + "text": " method returns data about each connected network node as a json array of objects.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "getpeerinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| -------------------- | --------- | -------------------------------------------------------------------- |\n| \"id\" | (numeric) | peer index |\n| \"addr\":, | (string) | the ip address and port of the peer (\"host:port\") |\n| \"addrlocal\" | (string) | local address (\"ip:port\") |\n| \"services\" | (string) | the services offered |\n| \"lastsend\" | (numeric) | the time in seconds since epoch (Jan 1 1970 GMT) of the last send |\n| \"lastrecv\" | (numeric) | the time in seconds since epoch (Jan 1 1970 GMT) of the last receive |\n| \"bytessent\" | (numeric) | the total bytes sent |\n| \"bytesrecv\" | (numeric) | the total bytes received |\n| \"conntime\" | (numeric) | the connection time in seconds since epoch (Jan 1 1970 GMT) |\n| \"timeoffset\" | (numeric) | the time offset in seconds |\n| \"pingtime\" | (numeric) | ping time |\n| \"pingwait\" | (numeric) | ping wait |\n| \"version\" | (numeric) | the peer version, such as 170002 |\n| \"subver\" | (string) | the string version (i.e. \"/MagicBean:x.y.z[-v]/\") |\n| \"inbound\" | (boolean) | inbound (true) or outbound (false) |\n| \"startingheight\" | (numeric) | the starting height (block) of the peer |\n| \"banscore\" | (numeric) | the ban score |\n| \"synced_headers\" | (numeric) | the last header we have in common with this peer |\n| \"synced_blocks\" | (numeric) | the last block we have in common with this peer |\n| \"inflight\": [ ... ] | (array) | |\n| number | (numeric) | the block height requested from this peer |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-9" + }, + { + "text": "listbanned", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "listbanned" + }, + { + "text": "listbanned", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "listbanned" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "listbanned" + }, + { + "text": "listbanned", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "listbanned" + }, + { + "text": " method lists all banned IP addresses and subnets.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "listbanned" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| --------------- | --------- | ----------------------------------------------------- |\n| \"address\" | (string) | the address/subnet that is banned |\n| \"banned_until\" | (numeric) | the timestamp, at which point the ban will be removed |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-10" + }, + { + "text": "ping", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " method requests that a ping be sent to all other nodes, to measure ping time.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "Results provided in ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "pingtime", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "pingwait", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " fields are decimal seconds.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " command is handled in queue with all other commands, so it measures processing backlog, not just network ping.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " to see ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": " results.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "ping" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-11" + }, + { + "text": "setban", + "tagName": "h2", + "path": "smart-chains/api/network", + "closestElementReference": "setban" + }, + { + "text": "setban \"ip(/netmask)\" \"add|remove\" (bantime) (absolute)", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "setban" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "setban" + }, + { + "text": "setban", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "setban" + }, + { + "text": " method attempts to add or remove an IP address (and subnet, if indicated) from the banned list.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "setban" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| -------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"ip(/netmask)\" | (string, ip required) | the IP/subnet (see ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-12" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-12" + }, + { + "text": " for nodes ip) with an optional netmask (default is /32 = single ip) |\n| \"command\" | (string, required) | use \"add\" to add an IP/subnet to the list, or \"remove\" to remove an IP/subnet from the list |\n| bantime | (numeric, optional) | indicates how long (in seconds) the ip is banned (or until when, if [absolute] is set). 0 or empty means the ban is using the default time of 24h, which can also be overwritten using the -bantime runtime parameter. |\n| absolute | (boolean, optional) | if set to true, the bantime must be an absolute timestamp (in seconds) since epoch (Jan 1 1970 GMT) |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/network", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-12" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-12" + }, + { + "text": "listbanned", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-12" + }, + { + "text": " to view results.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/network", + "closestElementReference": "examples-12" + } + ], + "smart-chains/api/nspv": [ + { + "text": "nSPV", + "tagName": "h1", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "nSPV enhances the normal \"Simple Payment Verification\" (SPV) technology available for a Smart Chain. To learn more about regular SPV technology, ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "read this entry on the Bitcoin wiki.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "read this entry on the Bitcoin wiki.", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "nSPV leverages the dPoW security mechanism of the Komodo Platform to enable secure and scalable super-lite \"SPV\" clients. An nSPV client network utilizes a smaller amount of computation and storage resources compared to a normal SPV network. For all Smart Chains that enable nSPV, full nodes on the network can serve the necessary data to nSPV nodes for the latter to have full wallet functionality.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "All Komodo-compatible Smart Chains, including the KMD main chain, can utilize this technology.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "More details are available in the blog posts ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "here", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "here.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "here.", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "This document is intended for using the nSPV features through the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "There is an alternate implementation called ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "libnspv", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": " that is standalone and works as a full wallet for Komodo and any Smart Chain that has dPoW enabled.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "libnspv", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "To use the following methods, the daemon must be started with the command line parameter: ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "-nSPV=1", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": ". The parameter instructs the daemon to act as a nSPV client.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "nspv_broadcast", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": "nspv_broadcast hex", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": "Use this method to broadcast the hex value returned by the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": "nspv_spend", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": "nspv_spend", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-broadcast" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | ----------------------------- |\n| hex | (string) | the transaction in hex format |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| expected | (string) | the expected transaction id |\n| broadcast | (string) | the broadcasted transaction id |\n| retcode | (number) | the return code", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response" + }, + { + "text": "0: no error", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response" + }, + { + "text": "-1,-2,-3: failure", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response" + }, + { + "text": "-200x: mostly OK, some of the inputs may not be notarized |\n| type | (string) | the type of the broadcast |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples" + }, + { + "text": "nspv_getinfo", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-getinfo" + }, + { + "text": "nspv_getinfo [hdrheight]", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-getinfo" + }, + { + "text": "Use this method to get the general information on the state of the blockchain at the moment.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-getinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------- |\n| hdrheight | (number, optional) | supplies the height of the block for which the header data is required |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| nSPV | (string) | the mode of nSPV |\n| address | (string) | the address corresponding to the wifkey |\n| pubkey | (string) | the pubkey corresponding to the wifkey |\n| wifexpires | (string) | the time in seconds till the login expires |\n| height | (number) | the current height of the blockchain |\n| chaintip | (string) | the blockhash of the last block |\n| notarization | (json) | a json containing the notarization details |\n| notarized_height | (number) | the height of the latest block that has been notarized |\n| notarized_blockhash | (string) | the blockhash of the latest block that has been notarized |\n| notarization_txid | (string) | the id of the transaction in which the notarization data is included in the chain being dPoW'ed |\n| notarization_txidheight | (number) | the height of the block in which the notarization transaction is included |\n| notarization_desttxid | (string) | the id of the transaction in which the notarization data is included in the chain acting as the data store |\n| header | (string) | a json containing the details of the header (of the current block by default / block of height specified by ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-2" + }, + { + "text": "hdrheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-2" + }, + { + "text": " if it is specified) |\n| height | (number) | the height of the block that has been queried |\n| blockhash | (string) | the blockhash of the block that has been queried |\n| hashPrevBlock | (string) | the blockhash of the block before the block that has been queried |\n| hashMerkleRoot | (string) | the merkleroot of the block that has been queried |\n| nTime | (number) | a timestamp recording when this block was created |\n| nBits | (number) | the calculated difficulty target being used for this block |\n| protocolversion | (string) | the version of the client; helps the nspv client disconnect from nodes that are out of date |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-2" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-2" + }, + { + "text": "nspv_hdrsproof", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "nspv_hdrsproof prevheight nextheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "This method scans backwards from the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "prevheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": " until the process encounters a notarization transaction, then forward from ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "nextheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": " until the process encounters another notarization transaction.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "Then the process finds the notarized blocks corresponding to these two notarization transactions.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "Then the process returns all the block headers between these two notarized blocks.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "Now that both ends of this segment of blocks are notarized blocks, all block headers in this segment can be validated to see if they link back to each other.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-hdrsproof" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------ |\n| prevheight | (number) | the block number from which headers are required |\n| nextheight | (number) | the block number to which headers are required |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| prevht | (string) | the height of the first notarized block below the height ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "prevheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| nextht | (string) | the height of the first notarized block above the height ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "nextheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| prevtxid | (string) | the id of the transaction that contains the notarization data of the block of height ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "prevht", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| prevtxidht | (string) | the height of the block in which the transaction with id ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "prevtxid", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " is present |\n| prevtxlen | (string) | the length of the transaction with id ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "prevtxid", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| nexttxid | (string) | the id of the transaction that contains the notarization data of the block of height ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "nextht", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| nexttxidht | (string) | the height of the block in which the transaction with id ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "nexttxid", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " is present |\n| nexttxlen | (string) | the length of the transaction with id ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "nexttxid", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " |\n| numhdrs | (string) | the number of headers being returned |\n| headers | (string) | a json containing the details of the header (of the current block by default / block of height specified by ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": "hdrheight", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": " if it is specified) |\n| height | (number) | the height of the block that has been queried |\n| blockhash | (string) | the blockhash of the block that has been queried |\n| hashPrevBlock | (string) | the blockhash of the block before the block that has been queried |\n| hashMerkleRoot | (string) | the merkleroot of the block that has been queried |\n| nTime | (number) | a timestamp recording when this block was created |\n| nBits | (number) | the calculated difficulty target being used for this block |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-3" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-3" + }, + { + "text": "nspv_listtransactions", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listtransactions" + }, + { + "text": "nspv_listtransactions [address [isCC [skipcount [filter]]]]", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listtransactions" + }, + { + "text": "This method returns a list of transactions for an address.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listtransactions" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |\n| address | (string, optional) | the address for which transactions are to be listed; if not specified, the current active address is used |\n| isCC | (number, optional) | only return transactions that are related to Antara modules |\n| skipcount | (number, optional) | skips the specified number of transactions starting from the oldest; always returns the latest transaction |\n| filter | (number, optional) | (in development) |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------------- | --------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| txids | (array of jsons) | an array containing jsons that describe the transactions |\n| height | (number) | the height of the block in which the transaction was included |\n| txid | (string) | the id of the transaction |\n| value | (number) | the amount of coins in the vin/vout (inputs and outputs) |\n| vin/vout | (number) | the index of vin/vout in the transaction |\n| address | (string) | the address for which the transactions are being returned |\n| isCC | (number) | whether the address belongs to an Antara module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numtxids | (number) | number of vouts/vins being returned |\n| skipcount | (number) | the number of transactions that have been skipped, starting from the oldest transaction |\n| filter | (number) | (in development) |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-4" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-4" + }, + { + "text": "nspv_listunspent", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listunspent" + }, + { + "text": "nspv_listunspent [address [isCC [skipcount [filter]]]]", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listunspent" + }, + { + "text": "Use this method to retrieve all the unspent outputs belonging to an address.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-listunspent" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |\n| address | (string, optional) | the address for which transactions are to be listed; if not specified, the current active address is used |\n| isCC | (number, optional) | only return transactions that are related to Antara modules |\n| skipcount | (number, optional) | skips the specified number of transactions starting from the oldest; always returns the latest transaction |\n| filter | (number, optional) | (in development) |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------------- | ------------------------------------------------------------ |\n| result | (string) | whether the command was successful |\n| utxos | (array of jsons) | an array containing jsons that describe the outputs |\n| height | (number) | the height of the block in which the output was created |\n| txid | (string) | the id of the transaction in which the output is present |\n| vout | (number) | the index of the vout (output) in the transaction |\n| value | (number) | the amount of coins in the vout (output) |\n| rewards | (number) | the amount of active user rewards claimable by the output |\n| address | (string) | the address for which the transactions are being returned |\n| isCC | (number) | whether the address belongs to an Antara module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numutxos | (number) | number of vouts(outputs) being returned |\n| balance | (number) | the total balance available for the address |\n| rewards | (number) | the total rewards claimable by the address |\n| skipcount | (number) | the number of utoxs that have been skipped; from the oldest |\n| filter | (number) | (in development) |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-5" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-5" + }, + { + "text": "nspv_login", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-login" + }, + { + "text": "nspv_login wif", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-login" + }, + { + "text": "Use this method to login to an address using its wifkey.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-login" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | --------------------------------------------------- |\n| wif | (string) | the wifkey (wallet import format of the privatekey) |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | --------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| status | (string) | the time till the expiry of the login |\n| address | (string) | the address corresponding to the wifkey |\n| pubkey | (string) | the pubkey corresponding to the wifkey |\n| wifprefix | (number) | the prefix of the wifkey (indicates the netwok the wifkey is to be used on) |\n| compressed | (boolean) | indicates whether the wifkey is compressed |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-6" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-6" + }, + { + "text": "nspv_logout", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-logout" + }, + { + "text": "nspv_logout", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-logout" + }, + { + "text": "Use this method to logout of the currently logged in address.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-logout" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ----------------------------- |\n| result | (string) | whether the command succeeded |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-7" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-7" + }, + { + "text": "nspv_mempool", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "nspv_mempool address isCC memfunc [txid vout evalcode ccfunc]]]", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "This method returns the current transactions in the mempool. The various parameters can be used to filter the transactions.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "FIXME", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "which args are optional and eachone's use", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "and values and meanings of memfunc", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "memfunc (0 all, 1 address recv, 2 txid/vout spent, 3 txid inmempool 4)", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-mempool" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | ----------------- | ------------------------------------------------------ |\n| address | (string,optional) | if the transactions should belong to the address |\n| isCC | (number,optional) | if the transactions should belong to any Antara module |\n| memfunc | (number,optional) | TBD |\n| txid | (string,optional) | TBD |\n| vout | (number,optional) | TBD |\n| evalcode | (number,optional) | TBD |\n| ccfunc | (number,optional) | TBD |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | ------------------------------------------------------------ |\n| result | (string) | whether the command was successful |\n| txids | (array of strings) | the ids of the transactions in the mempool |\n| address | (string) | the address that was used to filter the mempool |\n| isCC | (number) | if the transactions returned belong to an Antara Module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numtxids | (number) | the number of transaction ids that are being returned |\n| txid | (string) | TBD |\n| vout | (number) | TBD |\n| memfunc | (number) | TBD |\n| type | (string) | the type of the filter apploed to the mempool |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-8" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-8" + }, + { + "text": "nspv_notarizations", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-notarizations" + }, + { + "text": "nspv_notarizations height", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-notarizations" + }, + { + "text": "This method returns the notarization data for a given height.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-notarizations" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------- |\n| height | (number) | the height at which notarization data is required |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | -------- | ---------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| prev | (json) | the details of the previous notarization |\n| notarized_height | (number) | the height of the latest block that has been notarized |\n| notarized_blockhash | (string) | the blockhash of the latest block that has been notarized |\n| notarization_txid | (string) | the id of the transaction in which the notarization data is included in the chain being dPoW'ed |\n| notarization_txidheight | (number) | the height of the block in which the notarization transaction is included |\n| notarization_desttxid | (string) | the id of the transaction in which the notarization data is included in the chain acting as the data store |\n| next | (json) | the details of the next notarization |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-9" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-9" + }, + { + "text": "nspv_spend", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spend" + }, + { + "text": "nspv_spend address amount", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spend" + }, + { + "text": "This method can be used to spend some coins from the currently loggedin address to any other address.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spend" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------- |\n| address | (string) | the address of the recipient |\n| amount | (number) | the amount to be sent |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| rewards | (string) | the rewards being claimed by this spend transaction |\n| validated | (string) | |\n| tx | (json) | a json containing details of the transaction |\n| nVersion | (number) | version of the komodo daemon |\n| vin | (array of jsons) | the inputs being consumed by the transaction |\n| txid | (string) | the id of the transaction whose input is being spent |\n| vout | (number) | the output number in the above transaction |\n| scriptSig | (string) | the redeem script that satisfies the scriptPubkey of the above output |\n| sequenceid | (number) | the sequence number that has been set |\n| vout | (array of jsons) | the outputs being created by the transaction |\n| value | (string) | the value in the output |\n| scriptPubKey | (string) | the locking script placed on the above value |\n| nLockTime | (number) | the locktime that has been set |\n| nExpiryHeight | (number) | the block height after which the transaction will be removed from the mempool if it has not been mined |\n| valueBalance | (number) | |\n| result | (string) | whether the command succeeded |\n| hex | (string) | the transaction in hex format; it should be broadcast to the network using the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-10" + }, + { + "text": "nspv_broadcast", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-10" + }, + { + "text": " method |\n| retcodes | (number) | the return codes; given an indication on the success or failure in the creation of the transaction |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-10" + }, + { + "text": "nspv_broadcast", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-10" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-10" + }, + { + "text": "nspv_spentinfo", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spentinfo" + }, + { + "text": "nspv_spentinfo txid vout", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spentinfo" + }, + { + "text": "This method returns the spent info of the output specified by the arguments.", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-spentinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | --------------------------------------------------------------------- |\n| txid | (string) | the id of the transaction whose spent info is required |\n| vout | (number) | the vout number in the above transaction whose spent info is required |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | --------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| txid | (string) | the id of the transaction whose spent info is returned |\n| vout | (string) | the vout number in the above transaction whose spent info is required |\n| spentheight | (string) | the block height at which the output has been spent |\n| spenttxid | (string) | the id of the transaction that spent this output |\n| spentvini | (string) | the input number of this output in the transaction that spent it |\n| spenttxlen | (string) | the length of the transaction that spent this output |\n| spenttxprooflen | (string) | the length of proof of the transaction that spent this output |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-11" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-11" + }, + { + "text": "nspv_txproof", + "tagName": "h2", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": "nspv_txproof txid vout [height]", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": "This method is an internal function to be used by the ", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": "nspv_listtransactions", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": " method", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": "nspv_listtransactions", + "tagName": "a", + "path": "smart-chains/api/nspv", + "closestElementReference": "nspv-txproof" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | ----------------- | -------------------------------------------------- |\n| txid | (string) | the id of the transaction whose proof is requested |\n| vout | (number) | the number of the output in the above transaction |\n| height | (number,optional) | |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------ |\n| txid | (string) | the id of the transaction whose proof is returned |\n| height | (string) | the height at which the proof of the transaction is returned |\n| txlen | (string) | the length of the transaction |\n| txprooflen | (string) | the length of the proof for the transaction |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "response-12" + }, + { + "text": ":pushpin: Examples", + "tagName": "h3", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/nspv", + "closestElementReference": "pushpin-examples-12" + } + ], + "smart-chains/api/rawtransactions": [ + { + "text": "Rawtransactions", + "tagName": "h1", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "rawtransactions" + }, + { + "text": "createrawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": "createrawtransaction '[{ \"txid\": \"id_string\", \"vout\": number }, ... ]' '{ \"address\": amount, ... }'", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": "createrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": " method creates a transaction, spending the given inputs and sending to the given addresses. The method returns a hex-encoded raw transaction.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": "This is a raw transaction, and therefore the inputs are not signed and the\ntransaction is not stored in the wallet nor transmitted to the network.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "createrawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------- | ---------------------------------------------------------- |\n| \"transactions\" | (string, required) | a json array of json objects |\n| \"txid\" | (string, required) | the transaction id |\n| \"vout\" | (numeric, required) | the output number |\n| \"addresses\" | (string, required) | a json object with addresses as keys and amounts as values |\n| \"address\" | (numeric, required) | the key is the address, the value is the COIN amount |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ------------------------------- |\n| \"transaction\" | (string) | a hex string of the transaction |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples" + }, + { + "text": "decoderawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decoderawtransaction" + }, + { + "text": "decoderawtransaction \"hexstring\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decoderawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decoderawtransaction" + }, + { + "text": "decoderawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decoderawtransaction" + }, + { + "text": " method returns a json object representing the serialized, hex-encoded transaction.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decoderawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ----- | ------------------ | -------------------------- |\n| \"hex\" | (string, required) | the transaction hex string |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | ---------------------------------------------- | ----------------------------------------------------------------- |\n| \"txid\" | (string) | the transaction id |\n| \"overwintered\" | (boolean) | the overwintered flag |\n| \"version\" | (numeric) | the version |\n| \"versiongroupid\" | (string, optional) | the version group id (overwintered txs) |\n| \"locktime\" | (numeric) | the lock time |\n| \"expiryheight\" | (numeric, optional) | last valid block height for mining transaction (overwintered txs) |\n| \"vin\" : [ ... ] | (array of json objects) | |\n| \"txid\" | (string) | the transaction id |\n| \"vout\" : [ ... ] | (numeric) | the output number |\n| \"scriptSig\" | (json object) | the script |\n| \"asm\" | (string) | asm |\n| \"hex\" | (string) | hex |\n| \"sequence\" | (numeric) | the script sequence number |\n| \"vout\" | (array of json objects) | |\n| \"value\" | (numeric) | the value |\n| \"number\" | (numeric) | index |\n| \"scriptPubKey\" | (json object) | |\n| \"asm\" | (string) | the asm |\n| \"hex\" | (string) | the hex |\n| \"reqSigs\" | (numeric) | the required sigs |\n| \"type\" | (string) | the type, eg 'pubkeyhash' |\n| \"addresses\" | | |\n| \"address\" | (string) | the address |\n| \"vjoinsplit\" : [ ... ] | (array of json objects, only for version >= 2) | |\n| \"vpub_old\" | (numeric) | public input value |\n| \"vpub_new\" | (numeric) | public output value |\n| \"anchor\" | (string) | the anchor |\n| \"nullifiers\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | input note nullifier |\n| \"commitments\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | output note commitment |\n| \"onetimePubKey\" | (string) | the onetime public key used to encrypt the ciphertexts |\n| \"randomSeed\" | (string) | the random seed |\n| \"macs\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | input note MAC |\n| \"proof\" | (string) | the zero-knowledge proof |\n| \"ciphertexts\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | output note ciphertext |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-2" + }, + { + "text": "decodescript", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decodescript" + }, + { + "text": "decodescript \"hex\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decodescript" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decodescript" + }, + { + "text": "decodescript", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decodescript" + }, + { + "text": " method decodes a hex-encoded script.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "decodescript" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | ---------------------- |\n| \"hex\" | (string) | the hex encoded script |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | ------------------ | -------------------------- |\n| \"asm\" | (string) | the script public key |\n| \"hex\" | (string) | the hex-encoded public key |\n| \"type\" | (string) | the output type |\n| \"reqSigs\" | (numeric) | the required signatures |\n| \"addresses\": [ ... ] | (array of strings) | |\n| \"address\" | (string) | the address |\n| \"p2sh\" | (string) | the script address |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-3" + }, + { + "text": "fundrawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "fundrawtransaction \"hexstring\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "fundrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": " method adds inputs to a transaction until it has enough ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "in", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": " value to meet its ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "out", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": " value. This will not modify existing inputs, and will add one ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "change", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": " output to the outputs.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "Inputs which were signed may need to be resigned after completion since\nin/outputs have been added. To sign the inputs added, use", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "signrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "This method comes from the BTC codebase, of which KMD is ultimately a fork\n(via Zcash). For full details, please see ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "the linked\ndocumentation", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "the linked\ndocumentation", + "tagName": "a", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "fundrawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | ------------------------------------- |\n| \"hexstring\" | (string, required) | the hex string of the raw transaction |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | -------------------------------------------------- |\n| \"hex\" | (string) | the resulting raw transaction (hex-encoded string) |\n| \"fee\" | (numeric) | the fee added to the transaction |\n| \"changepos\" | (numeric) | the position of the added change output, or -1 |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Create a transaction with no inputs:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Add sufficient unsigned inputs to meet the output value:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Sign the transaction:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Send the transaction:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-4" + }, + { + "text": "getrawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "getrawtransaction \"transaction_id\" ( verbose )", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "getrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": " method returns the raw transaction data.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "If ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "verbose=0", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": ", the method returns a string that is serialized, hex-encoded data for ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "transaction_id", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": ". If ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "verbose", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": " is non-zero, the method returns an object with information about ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "transaction_id", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "This method relies on the ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": " runtime parameter, which is enabled\nby default on all KMD-based chains. Disabling ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": " will cause this\nmethod to malfunction.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "getrawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------------------ | ----------------------------------------------------------------------------- |\n| \"txid\" | (string, required) | the transaction id |\n| verbose | (numeric, optional, default=0) | if 0, the method returns a string in hex; otherwise, it returns a json object |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-5" + }, + { + "text": "Response (if ", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "verbose", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": " is not set, or set to ", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "0", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------- |\n| \"data\" | (string) | the serialized, hex-encoded data for 'txid' |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "Response (if ", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "verbose", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": " > ", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "0", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": ")", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | ---------------------------------------------- | --------------------------------------------------------------------------- |\n| \"hex\" | (string) | the serialized, hex-encoded data for 'txid' |\n| \"txid\" | (string) | the transaction id (same as provided) |\n| \"version\" | (numeric) | the version |\n| \"locktime\" | (numeric) | the lock time |\n| \"expiryheight\" | (numeric, optional) | the block height after which the transaction expires |\n| \"vin\" : [ ... ] | (array of json objects) | |\n| \"txid\" | (string) | the transaction id |\n| \"vout\" | (numeric) | |\n| \"scriptSig\": { ... } | (array of json objects) | the script |\n| \"asm\" | (string) | asm |\n| \"hex\" | (string) | hex |\n| \"sequence\" | (numeric) | the script sequence number |\n| \"vout\" : [ ... ] | (array of json objects) | |\n| \"value\" | (numeric) | the value |\n| \"number\" | (numeric) | index |\n| \"scriptPubKey\" | | |\n| \"asm\" | (string) | the asm |\n| \"hex\" | (string) | the hex |\n| \"reqSigs\" | (numeric) | the required sigs |\n| \"type\" | (string) | the type, e.g. 'pubkeyhash' |\n| \"addresses\" : [ ... ] | (array of strings) | |\n| \"address\" | (string) | the address |\n| \"vjoinsplit\" : [ ... ] | (array of json objects, only for version >= 2) | |\n| \"vpub_old\" | (numeric) | public input value |\n| \"vpub_new\" | (numeric) | public output value |\n| \"anchor\" | (string) | the anchor |\n| \"nullifiers\" | | |\n| \"hex\" | (string) | input note nullifier |\n| \"commitments\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | output note commitment |\n| \"onetimePubKey\" | (string) | the onetime public key used to encrypt the ciphertexts |\n| \"randomSeed\" | (string) | the random seed |\n| \"macs\": [ ... ] | (array of strings) | |\n| \"hex\" | (string) | input note MAC |\n| \"proof\" | (string) | the zero-knowledge proof |\n| \"ciphertexts\": [ ... ] | (array of strings) | |\n| \"hex\" | (string) | output note ciphertext |\n| \"blockhash\" | (string) | the block hash |\n| \"height\" | (numeric) | height of the block |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of dPoW security |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this transaction's block) |\n| \"time\" | (numeric) | the transaction time in seconds since epoch (Jan 1 1970 GMT) |\n| \"blocktime\" | (numeric) | the block time in seconds since epoch (Jan 1 1970 GMT) |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-5" + }, + { + "text": "sendrawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "sendrawtransaction \"hexstring\" ( allowhighfees )", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "sendrawtransction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": " method submits raw transaction (serialized, hex-encoded) to local nodes and the network.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "Also see ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "createrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "signrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": " calls.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "createrawtransaction", + "tagName": "a", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "signrawtransaction", + "tagName": "a", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "sendrawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---------------------------------- | ------------------------------------- |\n| \"hexstring\" | (string, required) | the hex string of the raw transaction |\n| allowhighfees | (boolean, optional, default=false) | whether to allow high fees |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | --------------------------- |\n| \"hex\" | (string) | the transaction hash in hex |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Create a transaction:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Sign the transaction, and get back the hex:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Send the transaction (signed hex):", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-6" + }, + { + "text": "signrawtransaction", + "tagName": "h2", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "signrawtransaction \"hexstring\" ( [{ \"txid\": \"id\", \"vout\": n, \"scriptPubKey\": \"hex\", \"redeemScript\": \"hex\" }, ... ][ \"privatekey1\", ... ] sighashtype )", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "signrawtransaction", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": " method signs inputs for a raw transaction (serialized, hex-encoded). The second optional argument (may be ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "null", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": ") is an array of previous transaction outputs that this transaction depends on, but may not yet be in the block chain. The third optional argument (may be ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "null", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": ") is an array of base58-encoded private keys that, if given, will be the only keys used to sign the transaction.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "For full details, please see ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "the linked\ndocumentation", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "the linked\ndocumentation", + "tagName": "a", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "signrawtransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"hexstring\" | (string, required) | the transaction hex string |\n| \"prevtxs\" | (string, optional) | a json array of previous dependent transaction outputs |\n| \"txid\" | (string, required) | the transaction id |\n| \"vout\" | (numeric, required) | the output number |\n| \"scriptPubKey\" | (string, required) | the script key |\n| \"redeemScript\" | (string, required for P2SH) | redeem script |\n| \"amount\" | (numeric, required) | the amount spent |\n| \"privatekeys\" | (string, optional) | a json array of base58-encoded private keys for signing |\n| \"privatekey\" | (string) | the private key in base58-encoding |\n| \"sighashtype\" | (string, optional, default=ALL) | the signature hash type; the following options are available: ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "\"ALL\" \\| \"NONE\" \\| \"SINGLE\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "\"ALL\" \\| \"ANYONECANPAY\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "\"NONE\" \\| \"ANYONECANPAY\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "\"SINGLE\" \\| \"ANYONECANPAY\"", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | --------- | -------------------------------------------------------- |\n| \"hex\" | (string) | the hex-encoded raw transaction with signature(s) |\n| \"complete\" | (boolean) | whether the transaction has a complete set of signatures |\n| \"errors\" | | |\n| \"txid\" | (string) | the hash of the referenced, previous transaction |\n| \"vout\" | (numeric) | the index of the output to spend and used as input |\n| \"scriptSig\" | (string) | the hex-encoded signature script |\n| \"sequence\" | (numeric) | the script sequence number |\n| \"error\" | (string) | verification or signing error related to the input |", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's .conf file.", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/rawtransactions", + "closestElementReference": "examples-7" + } + ], + "smart-chains/api/util": [ + { + "text": "Util", + "tagName": "h1", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "util" + }, + { + "text": "createmultisig", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "createmultisig nrequired [ \"key\", ... ]", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "createmultisig", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": " method creates a multi-signature address with ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "n", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": " signature(s) of ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "m", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": " key(s) required. The method returns a json object with the address and redeemScript.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "createmultisig" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------- | ---------------------------------------------------------------------- |\n| number_required | (numeric, required) | the number of required signatures out of the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments" + }, + { + "text": "n", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments" + }, + { + "text": " key(s) or address(es) |\n| \"keys\" | (string, required) | a json array of keys which are addresses or hex-encoded public keys |\n| \"key\" | (string) | an address or hex-encoded public key |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| -------------- | -------- | ----------------------------------------------------- |\n| \"address\" | (string) | the value of the new multisig address |\n| \"redeemScript\" | (string) | the string value of the hex-encoded redemption script |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples" + }, + { + "text": "decodeccopret", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "decodeccopret scriptPubKey", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "decodeccopret", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": " method decodes the OP RETURN data from a CC transaction to output the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "function id", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": " of the method that produced the transaction.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "decodeccopret" + }, + { + "text": "Finding the OP RETURN Data From a CC Transaction", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "The OP RETURN data from a CC transaction can be found by following these steps:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "Decode a transaction produced by a CC module using the method ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "getrawtransaction", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "'s verbose option.", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "getrawtransaction", + "tagName": "a", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "Look for the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "vout", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " key; it is an array of jsons", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "Find the json that contains the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "scriptPubkey", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": ", and which has the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "type:nulldata", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " key pair", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "Copy the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "hex", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " value from that ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "scriptPubkey", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " json", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "This is the hex-string that is expected as the argument for the above method.", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "You can verify that the transaction was produced by a CC module by checking if one of the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "vout", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " json's ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "scriptPubkey", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " json has the ", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "type:cryptocondition", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": " key pair", + "tagName": "li", + "path": "smart-chains/api/util", + "closestElementReference": "finding-the-op-return-data-from-a-cc-transaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ---------------------------------------------------------------------------------------------------------------------- |\n| scriptPubKey | (string) | the hex-string format ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "scriptPubKey", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": " of the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "type", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": " : ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "nulldata", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": " in the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "vout", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": " of a transaction produced by a CC module |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------------------- | ------------------------------------------------------------- |\n| result | (string) | whether the call succeeded |\n| OpRets | (json) | a json containing the keys ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "function id", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": " |\n| eval_code | (hexadecimal number) | the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "EVALCODE", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": " of the method that produced the transaction |\n| function | (string) | the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "function id", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": " of the method that produced the transaction |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-2" + }, + { + "text": "estimatefee", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "estimatefee nblocks", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "estimatefee", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": " method estimates the approximate fee per kilobyte. The method is needed for a transaction to begin confirmation within ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "nblocks", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "The value ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "-1.0", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": " is returned if not enough transactions and blocks have been observed to make an estimate.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatefee" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | ---------------------------------------------------------- |\n| nblocks | (numeric) | the number of blocks within which the fee should be tested |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | ----------------- |\n| n | (numeric) | the estimated fee |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-3" + }, + { + "text": "estimatepriority", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "estimatepriority nblocks", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "estimatepriority", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": " method estimates the approximate priority of a zero-fee transaction, when it needs to begin confirmation within ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "nblocks", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": " blocks.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "The value ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "-1.0", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": " is returned if not enough transactions and blocks have been observed to make an estimate.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "estimatepriority" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------- | --------- | --------------------------------------------------------------------------------- |\n| nblocks | (numeric) | a statement indicating within how many blocks the transaction should be confirmed |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ---- | --------- | ---------------------- |\n| n | (numeric) | the estimated priority |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-4" + }, + { + "text": "invalidateblock", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "invalidateblock" + }, + { + "text": "invalidateblock \"hash\"", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "invalidateblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "invalidateblock" + }, + { + "text": "invalidateblock", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "invalidateblock" + }, + { + "text": " method permanently marks a block as invalid, as if it violated a consensus rule.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "invalidateblock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---- | ------------------ | ---------------------------------------- |\n| hash | (string, required) | the hash of the block to mark as invalid |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-5" + }, + { + "text": "reconsiderblock", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": "reconsiderblock \"hash\"", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": "reconsiderblock", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": " method removes invalidity status of a block and its descendants, reconsidering them for activation. This can be used to undo the effects of the ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": "invalidateblock", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "reconsiderblock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ---- | ------------------ | ----------------------------------- |\n| hash | (string, required) | the hash of the block to reconsider |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-6" + }, + { + "text": "txnotarizedconfirmed", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "txnotarizedconfirmed txid", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "txnotarizedconfirmed", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": " method returns information about a transaction's state of confirmation.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "If the transaction is on a chain that has Komodo's dPoW security service, the method returns ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": " if the transaction is notarized.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "If the chain does not have dPoW, the method returned ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": " if the confirmation number is greater than ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "60", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "txnotarizedconfirmed" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | ------------------ |\n| \"txid\" | (string, required) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"result\" | (boolean) | whether the transaction is confirmed, for dPoW-based chains; for non-dPoW chains, the value indicates whether the transaction has ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-7" + }, + { + "text": "60", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-7" + }, + { + "text": " or more confirmations |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-7" + }, + { + "text": "validateaddress", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress \"komodoaddress\"", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "validateaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "validateaddress" + }, + { + "text": " method returns information about the given address.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "validateaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ----------------------- |\n| \"address\" | (string, required) | the address to validate |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| -------------- | --------- | ----------------------------------------------------------------------------------------- |\n| \"isvalid\" | (boolean) | indicates whether the address is valid. If it is not, this is the only property returned. |\n| \"address\" | (string) | the address validated |\n| \"scriptPubKey\" | (string) | the hex encoded scriptPubKey generated by the address |\n| \"ismine\" | (boolean) | indicates whether the address is yours |\n| \"isscript\" | (boolean) | whether the key is a script |\n| \"pubkey\" | (string) | the hex value of the raw public key |\n| \"iscompressed\" | (boolean) | whether the address is compressed |\n| \"account\" | (string) | DEPRECATED the account associated with the address; \"\" is the default account |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-8" + }, + { + "text": "verifymessage", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "verifymessage \"address\" \"signature\" \"message\"", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "verifymessage", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": " method verifies a signed message.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "signmessage", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "verifymessage" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------ | -------------------------------------------------------- |\n| \"address\" | (string, required) | the address to use for the signature |\n| \"signature\" | (string, required) | the signature provided by the signer in base 64 encoding |\n| \"message\" | (string, required) | the message that was signed |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ------------------------------------------- |\n| true/false | (boolean) | indicates whether the signature is verified |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-9" + }, + { + "text": "Create the signature:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-9" + }, + { + "text": "Verify the signature:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-9" + }, + { + "text": "z_validateaddress", + "tagName": "h2", + "path": "smart-chains/api/util", + "closestElementReference": "z-validateaddress" + }, + { + "text": "z_validateaddress \"zaddr\"", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "z-validateaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "z-validateaddress" + }, + { + "text": "z_validateaddress", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "z-validateaddress" + }, + { + "text": " method returns information about the given z address.", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "z-validateaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------ | ------------------------- |\n| \"zaddr\" | (string, required) | the z address to validate |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/util", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------- | ---------------------------------------------------------------------------------- |\n| \"isvalid\" | (boolean) | indicates whether the address is valid; if not, this is the only property returned |\n| \"address\" | (string) | the z address validated |\n| \"ismine\" | (boolean) | indicates if the address is yours or not |\n| \"payingkey\" | (string) | the hex value of the paying key, a_pk |\n| \"transmissionkey\" | (string) | the hex value of the transmission key, pk_enc |", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/util", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/util", + "closestElementReference": "examples-10" + } + ], + "smart-chains/api/wallet": [ + { + "text": "Wallet", + "tagName": "h1", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": "The following RPC calls interact with the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": " software, and are made available through the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "wallet" + }, + { + "text": "addmultisigaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "addmultisigaddress nrequired [ \"key\", ... ] ( \"account\" )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "addmultisigaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": " method adds a multi-signature address to the wallet, where ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "nrequired", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": " indicates the number of keys (out of the total provided) required to execute a transaction.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "The keys function as signatures, allowing multiple parties or entities to manage an account. Each key in the array can be an address or a hex-encoded public key.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "DEPRECATED: If ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": " is specified, the method assigns the\nmulti-signature address to that account.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "addmultisigaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| nrequired | (numeric, required) | the number of required keys (out of the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments" + }, + { + "text": "n", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments" + }, + { + "text": " submitted) |\n| \"keysobject\" | (string, required) | a json array of addresses or hex-encoded public keys |\n| \"address\" | (string) | the address or hex-encoded public key |\n| \"account\" | (string, optional) | DEPRECATED: if provided, \"account\" MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ----------------------------------- |\n| \"address\" | (string) | an address associated with the keys |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "Add a multisig address from 2 addresses:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples" + }, + { + "text": "backupwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "backupwallet \"destination\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "backupwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": " method safely copies the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": " file to the indicated destination. The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "destination", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": " input accepts only alphanumeric characters.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "This method requires that the coin daemon have the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": " runtime\nparameter enabled.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "backupwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"destination\" | (string, required) | the destination filename, saved in the directory set by the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-2" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-2" + }, + { + "text": " runtime parameter |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-2" + }, + { + "text": "exportdir", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------- |\n| \"path\" | (string) | the full path of the destination file |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-2" + }, + { + "text": "dumpprivkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "dumpprivkey \"address\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": " method reveals the private key corresponding to the indicated ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "importprivkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpprivkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ------------------------------- |\n| \"address\" | (string, required) | the address for the private key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | --------------- |\n| \"data\" | (string) | the private key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-3" + }, + { + "text": "dumpwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "dumpwallet \"filename\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "dumpwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": " method dumps all transparent-address wallet keys into a file, using a human-readable format.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "Overwriting an existing file is not permitted. The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "destination", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": " parameter accepts only alphanumeric characters.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "This method requires that the coin daemon have the\n", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": " runtime\nparameter enabled.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "exportdir", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "dumpwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |\n| \"filename\" | (string, required) | the filename, saved in the folder set by the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-4" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-4" + }, + { + "text": " runtime parameter |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-4" + }, + { + "text": "exportdir", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------- |\n| \"path\" | (string) | the full path of the destination file |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-4" + }, + { + "text": "encryptwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "encryptwallet \"passphrase\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "Using the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": " method will shutdown the Komodo daemon (", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": ").", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "This feature is available only on chains where ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "-ac_public", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": " is enabled. Chains\nthat feature private transactions cannot use this feature.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": " method encrypts the wallet with the indicated ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "passphrase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "For more information, please see these instructions: ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "Encrypt Komodo's wallet.dat File", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "Encrypt Komodo's wallet.dat File", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "This method is for first-time encryption only. After the first encryption, any calls that interact with private keys will require the passphrase via ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "walletpassphrase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": " prior to calling the corresponding method. This includes methods that create a transaction, dump a private key for an address, sign a transaction, etc.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "walletpassphrase", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "encryptwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ----------------------------------------------------------------------------------------------------- |\n| passphrase | (string) | the passphrase for wallet encryption; the passphrase must be at least 1 character, but should be many |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-5" + }, + { + "text": "| Text Response |\n| -------------------------------------------------------------------------------------------------------------------------------------------- |\n| wallet encrypted; Komodo server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup. |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-5" + }, + { + "text": "Encrypt your wallet", + "tagName": "h5", + "path": "smart-chains/api/wallet", + "closestElementReference": "encrypt-your-wallet" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "encrypt-your-wallet" + }, + { + "text": "Unlock the wallet for 60 seconds", + "tagName": "h5", + "path": "smart-chains/api/wallet", + "closestElementReference": "unlock-the-wallet-for-60-seconds" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "unlock-the-wallet-for-60-seconds" + }, + { + "text": "Lock the wallet again by removing the passphrase", + "tagName": "h5", + "path": "smart-chains/api/wallet", + "closestElementReference": "lock-the-wallet-again-by-removing-the-passphrase" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lock-the-wallet-again-by-removing-the-passphrase" + }, + { + "text": "As a json rpc call:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lock-the-wallet-again-by-removing-the-passphrase" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lock-the-wallet-again-by-removing-the-passphrase" + }, + { + "text": "getaccount", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccount" + }, + { + "text": "getaccount \"address\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccount" + }, + { + "text": "getaccount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccount" + }, + { + "text": " method returns the account associated with the given address.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ----------- |\n| \"address\" | (string, required) | the address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ------------------- |\n| \"accountname\" | (string) | the account address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-6" + }, + { + "text": "getaccountaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccountaddress" + }, + { + "text": "getaccountaddress \"account\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccountaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccountaddress" + }, + { + "text": "getaccountaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccountaddress" + }, + { + "text": " method returns the current address for receiving payments to this account.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaccountaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ------------------- |\n| \"address\" | (string) | the account address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-7" + }, + { + "text": "getaddressesbyaccount", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": "getaddressesbyaccount \"account\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": "getaddressesbyaccount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": " method returns the list of addresses for the given ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getaddressesbyaccount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | -------------------------------------------- |\n| \"address\" | (string) | an address associated with the given account |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-8" + }, + { + "text": "getbalance", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "getbalance ( \"account\" minconf includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "getbalance", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": " method returns the server's total available balance.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": " input is deprecated.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | -------------------------------------------------------------------------------------- |\n| \"account\" | (string, optional) | DEPRECATED if provided, it MUST be set to the empty string ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": " or to the string ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": "\"*\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": " |\n| minconf | (numeric, optional, default=1) | only include transactions confirmed at least this many times |\n| includeWatchonly | (bool, optional, default=false) | also include balance in watchonly addresses (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": "importaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": ") |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | ---------------- |\n| amount | (numeric) | the total amount |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "The total amount in the wallet:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "The total amount in the wallet where at least five blocks are confirmed:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "As a json rpc call:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-9" + }, + { + "text": "getbalance64", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "getbalance64", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "This method is part of the new ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": " functionality.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "getbalance64", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": " method is used only on Smart Chains that are utilizing the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": " functionality. On KMD-based Proof-of-Stake (PoS) Smart Chains, all staked coins are placed into one of 64 segments (", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "segid", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "'s'). The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "getbalance64", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": " method returns the balance of coins in each ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "segid", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": ". For further information, please reach out to our support team.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getbalance64" + }, + { + "text": "getnewaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getnewaddress" + }, + { + "text": "getnewaddress ( \"account\" )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getnewaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getnewaddress" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getnewaddress" + }, + { + "text": " method returns a new address for receiving payments.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getnewaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"account\" | (string, optional) | DEPRECATED: If provided, the account MUST be set to the empty string ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-10" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-10" + }, + { + "text": " to represent the default account; passing any other string will result in an error |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | --------------- |\n| \"address\" | (string) | the new address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-10" + }, + { + "text": "getrawchangeaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getrawchangeaddress" + }, + { + "text": "getrawchangeaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getrawchangeaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getrawchangeaddress" + }, + { + "text": "getrawchangeaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getrawchangeaddress" + }, + { + "text": " returns a new address that can be used to receive change.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getrawchangeaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ----------- |\n| \"address\" | (string) | the address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-11" + }, + { + "text": "getreceivedbyaccount", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "getreceivedbyaccount \"account\" ( minconf )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "getreceivedbyaccount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": " method returns the total amount received by ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": " in transactions with at least ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "minconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": " confirmations.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaccount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |\n| minconf | (numeric, optional, default=1) | only include transactions confirmed at least this many times |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | ------------------------------------------ |\n| amount | (numeric) | the total amount received for this account |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-12" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-12" + }, + { + "text": "getreceivedbyaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "getreceivedbyaddress \"address\" ( minconf )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "getreceivedbyaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": " method returns the total amount received by the given ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": " in transactions with at least ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "minconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": " confirmations.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getreceivedbyaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-13" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------------------ | ------------------------------------------------------------ |\n| \"address\" | (string, required) | the address for transactions |\n| minconf | (numeric, optional, default=1) | only include transactions confirmed at least this many times |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-13" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-13" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | -------------------------------------------------------------- |\n| amount | (numeric) | the total amount of the relevant coin received at this address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-13" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-13" + }, + { + "text": "gettransaction", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "gettransaction \"txid\" ( includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": " method queries detailed information about transaction ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "txid", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": ". This command applies only to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "txid", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "'s that are in the user's local wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "gettransaction" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-14" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | ------------------------------- | ----------------------------------------------------------------------------------------------------------------- |\n| \"txid\" | (string, required) | the transaction id |\n| \"includeWatchonly\" | (bool, optional, default=false) | whether to include watchonly addresses in the returned balance calculation and in the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-14" + }, + { + "text": "details[]", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-14" + }, + { + "text": " returned values |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-14" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| \"amount\" | (numeric) | the transaction amount |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this transaction's block) |\n| \"blockhash\" | (string) | the block hash |\n| \"blockindex\" | (numeric) | the block index |\n| \"blocktime\" | (numeric) | the time in seconds since epoch (1 Jan 1970 GMT) |\n| \"txid\" | (string) | the transaction id |\n| \"time\" | (numeric) | the transaction time in seconds since epoch (1 Jan 1970 GMT) |\n| \"timereceived\" | (numeric) | the time received in seconds since epoch (1 Jan 1970 GMT) |\n| \"details\" : [ ... ] | (array) | |\n| \"account\" | (string) | DEPRECATED the account name involved in the transaction; can be \"\" for the default account |\n| \"address\" | (string) | the address involved in the transaction |\n| \"category\" | (string) | the category - either ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": " |\n| \"amount\" | (numeric) | the amount |\n| \"vout\" | (numeric) | the vout value |\n| \"vjoinsplit\" : [ ... ] | (array of json objects) | |\n| \"anchor\" | (string) | merkle root of note commitment tree |\n| \"nullifiers\" : [ ... ] | (array of strings) | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": " |\n| \"hex\" | (string) | |\n| \"commitments\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | |\n| \"macs\" : [ ... ] | (array of strings) | |\n| \"hex\" | (string) | |\n| \"vpub_old\" | (numeric) | the amount removed from the transparent value pool |\n| \"vpub_new\" | (numeric) | the amount added to the transparent value pool |\n| \"hex\" | (string) | transaction data translated into hex |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-14" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-14" + }, + { + "text": "getunconfirmedbalance", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getunconfirmedbalance" + }, + { + "text": "getunconfirmedbalance", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getunconfirmedbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getunconfirmedbalance" + }, + { + "text": "getunconfirmedbalance", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getunconfirmedbalance" + }, + { + "text": " method returns the server's total unconfirmed balance.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getunconfirmedbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-15" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-15" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-15" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-15" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-15" + }, + { + "text": "getwalletinfo", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "getwalletinfo" + }, + { + "text": "getwalletinfo", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getwalletinfo" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getwalletinfo" + }, + { + "text": "getwalletinfo", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getwalletinfo" + }, + { + "text": " method returns an object containing various information about the wallet state.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "getwalletinfo" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-16" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-16" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-16" + }, + { + "text": "| Name | Type | Description |\n| ---------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| \"walletversion\" | (numeric) | the wallet version |\n| \"balance\" | (numeric) | the total confirmed balance of the wallet |\n| \"unconfirmed_balance\" | (numeric) | the total unconfirmed balance of the wallet |\n| \"immature_balance\" | (numeric) | the total immature balance of the wallet |\n| \"txcount\" | (numeric) | the total number of transactions in the wallet |\n| \"keypoololdest\" | (numeric) | the timestamp (seconds since GMT epoch) of the oldest pre-generated key in the key pool |\n| \"keypoolsize\" | (numeric) | how many new keys are pre-generated |\n| \"unlocked_until\" | (numeric) | the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked |\n| \"paytxfee\" | (numeric) | the transaction fee configuration, given as the relevant COIN per KB |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-16" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-16" + }, + { + "text": "importaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": "importaddress \"address\" ( \"label\" rescan )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": "importaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": " method adds an address or script (in hex) that can be watched as if it were in your wallet, although it cannot be used to spend.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": "This call can take an increased amount of time to complete if rescan is true.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-17" + }, + { + "text": "| Name | Type | Description |\n| --------- | --------------------------------- | ---------------------------------- |\n| \"address\" | (string, required) | the address to watch |\n| \"label\" | (string, optional, default=\"\") | an optional label |\n| rescan | (boolean, optional, default=true) | rescan the wallet for transactions |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-17" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-17" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-17" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "Import an address with rescan:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-17" + }, + { + "text": "importprivkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "importkey \"komodoprivkey\" ( \"label\" rescan )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "importprivkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": " method adds a private key to your wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "This call can take minutes to complete if ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "rescan", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": " is true.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importprivkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-18" + }, + { + "text": "| Name | Type | Description |\n| --------- | --------------------------------- | -------------------------------------------------------------------------- |\n| \"privkey\" | (string, required) | the private key (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-18" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-18" + }, + { + "text": ") |\n| \"label\" | (string, optional, default=\"\") | an optional label |\n| rescan | (boolean, optional, default=true) | rescan the wallet for transactions |\n| block | (integer, optional) | block height to rescan from |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-18" + }, + { + "text": "dumpprivkey", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-18" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-18" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ------------------ |\n| addresses | (string) | the public address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-18" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-18" + }, + { + "text": "importwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "importwallet \"filename\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "importwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": " method imports transparent-address keys from a wallet-dump file (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "dumpwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": ").", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "dumpwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "importwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-19" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | --------------- |\n| \"filename\" | (string, required) | the wallet file |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-19" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-19" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-19" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-19" + }, + { + "text": "keypoolrefill", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "keypoolrefill" + }, + { + "text": "keypoolrefill ( newsize )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "keypoolrefill" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "keypoolrefill" + }, + { + "text": "keypoolrefill", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "keypoolrefill" + }, + { + "text": " method refills the keypool.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "keypoolrefill" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-20" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------------------------------- | -------------------- |\n| newsize | (numeric, optional, default=100) | the new keypool size |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-20" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-20" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-20" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-20" + }, + { + "text": "listaccounts", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaccounts" + }, + { + "text": "listaccounts ( minconf includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaccounts" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaccounts" + }, + { + "text": "listaccounts", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaccounts" + }, + { + "text": " method returns an object that has account names as keys and account balances as values.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaccounts" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-21" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | --------------------------------------------------------------- |\n| minconf | (numeric, optional, default=1) | only include transactions with at least this many confirmations |\n| includeWatchonly | (bool, optional, default=false) | include balances in watchonly addresses (see 'importaddress') |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-21" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-21" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | --------- | ----------------------------------------------------------------------------------------- |\n| \"account_number\" | (numeric) | the property name is the account name, and the value is the total balance for the account |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-21" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-21" + }, + { + "text": "listaddressgroupings", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaddressgroupings" + }, + { + "text": "listaddressgroupings", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaddressgroupings" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaddressgroupings" + }, + { + "text": "listaddressgroupings", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaddressgroupings" + }, + { + "text": " method lists groups of addresses which have had their common ownership made public by common use as inputs or as the resulting change in past transactions.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listaddressgroupings" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-22" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-22" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-22" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------ |\n| \"address\", | (string) | the address |\n| amount, | (numeric) | the amount |\n| \"account\" | (string, optional) | (DEPRECATED) the account |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-22" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "(note how there are two separate, unique groupings of addresses)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-22" + }, + { + "text": "listlockunspent", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "listlockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "listlockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": " method returns a list of temporarily non-spendable outputs.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "See the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "lockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": " call to lock and unlock transactions for spending.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listlockunspent" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-23" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-23" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-23" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | ------------------------- |\n| \"txid\" | (string) | the transaction id locked |\n| \"vout\" | (numeric) | the vout value |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-23" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-23" + }, + { + "text": "listreceivedbyaccount", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaccount" + }, + { + "text": "listreceivedbyaccount ( minconf includeempty includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaccount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaccount" + }, + { + "text": "listreceivedbyaccount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaccount" + }, + { + "text": " method lists balances by account.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaccount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-24" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ---------------------------------- | ---------------------------------------------------------------- |\n| minconf | (numeric, optional, default=1) | the minimum number of confirmations before payments are included |\n| includeempty | (boolean, optional, default=false) | whether to include accounts that haven't received any payments |\n| includeWatchonly | (bool, optional, default=false) | whether to include watchonly addresses (see 'importaddress') |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-24" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-24" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |\n| \"involvesWatchonly\" | (bool) | only returned if the imported addresses were involved in the transaction |\n| \"account\" | (string) | the account name of the receiving account |\n| \"amount\" | (numeric) | the total amount received by addresses with this account |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations of the most recent transaction included (number of blocks on top of this transaction's block) |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-24" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-24" + }, + { + "text": "listreceivedbyaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaddress" + }, + { + "text": "listreceivedbyaddress ( minconf includeempty includeWatchonly)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaddress" + }, + { + "text": "listreceivedbyaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaddress" + }, + { + "text": " method lists balances by receiving address.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listreceivedbyaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-25" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ---------------------------------- | ---------------------------------------------------------------- |\n| minconf | (numeric, optional, default=1) | the minimum number of confirmations before payments are included |\n| includeempty | (numeric, optional, default=false) | whether to include addresses that haven't received any payments |\n| includeWatchonly | (bool, optional, default=false) | whether to include watchonly addresses (see 'importaddress') |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-25" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-25" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |\n| \"involvesWatchonly\" | (bool) | only returned if imported addresses were involved in transaction |\n| \"address\" | (string) | the receiving address |\n| \"account\" | (string) | DEPRECATED the account of the receiving address; the default account is \"\" |\n| \"amount\" | (numeric) | the total amount received by the address |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations of the most recent transaction included (number of blocks on top of this transaction's block) |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-25" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-25" + }, + { + "text": "listsinceblock", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "listsinceblock ( \"blockhash\" target-confirmations includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "listsinceblock", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": " method queries all transactions in blocks since block ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "blockhash", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": ", or all transactions if ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "blockhash", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": " is omitted.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listsinceblock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-26" + }, + { + "text": "| Name | Type | Description |\n| -------------------- | ------------------------------- | ---------------------------------------------------------------------- |\n| \"blockhash\" | (string, optional) | the block hash from which to list transactions |\n| target-confirmations | (numeric, optional) | the confirmations required (must be 1 or more) |\n| includeWatchonly | (bool, optional, default=false) | include transactions to watchonly addresses (see also 'importaddress') |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-26" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"transactions\": | | |\n| \"account\" | (string) | DEPRECATED the account name associated with the transaction; will be \"\" for the default account |\n| \"address\" | (string) | the address of the transaction (not present for move transactions -- category = move) |\n| \"category\" | (string) | the transaction category; ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " has negative amounts, ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " has positive amounts |\n| \"amount\" | (numeric) | the amount of the relevant currency -- negative for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category, and for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category for moves outbound. It is positive for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category, and for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category for inbound funds. |\n| \"vout\" | (numeric) | the vout value |\n| \"fee\" | (numeric) | the amount of the fee; this value is negative and only available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category of transactions |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations of the transaction; available for ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category of transactions (number of blocks on top of this transaction's block) |\n| \"blockhash\" | (string) | the block hash containing the transaction; available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " categories of transactions |\n| \"blockindex\" | (numeric) | the block index containing the transaction; available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " categories of transactions |\n| \"blocktime\" | (numeric) | the block time in seconds since epoch (1 Jan 1970 GMT) |\n| \"txid\" | (string) | the transaction id; available for ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " categories of transactions |\n| \"time\" | (numeric) | the transaction time in seconds since epoch (Jan 1 1970 GMT) |\n| \"timereceived\" | (numeric) | the time received in seconds since epoch (Jan 1 1970 GMT); available for ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": " category of transactions |\n| \"comment\" | (string) | whether a comment is associated with the transaction |\n| \"to\" | (string) | whether a 'to' comment is associated with the transaction |\n| \"lastblock\" | (string) | the hash of the last block |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-26" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-26" + }, + { + "text": "listtransactions", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "listtransactions ( \"account\" count from includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "listtransactions", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": " method returns up to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "count", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": " most recent transactions skipping the first ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "from", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": " transactions for ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listtransactions" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | ----------------------------------------------------------------- |\n| \"account\" | (string, optional) | DEPRECATED the account name; should be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": "\"*\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": " |\n| count | (numeric, optional, default=10) | the number of transactions to return |\n| from | (numeric, optional, default=0) | the number of transactions to skip |\n| includeWatchonly | (bool, optional, default=false) | include transactions to watchonly addresses (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": "importaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": ") |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-27" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "| Name | Type | Description | | |\n| ------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string) | DEPRECATED the account name associated with the transaction; it will be \"\" for the default account | | |\n| \"address\" | (string) | the address of the transaction; not present for move transactions (category = move) | | |\n| \"category\" | (string) | The transaction category. This property can be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": ". ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " is a local (off blockchain) transaction between accounts -- not associated with an address, transaction id, or block. ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " transactions are associated with an address, transaction id, and block details. |\n| \"amount\" | (numeric) | The amount. This value is negative for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category, and for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category for moves outbound. It is positive for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category and for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category for inbound funds. | | |\n| \"vout\" | (numeric) | the vout value | | |\n| \"fee\" | (numeric) | the amount of the fee; this is negative and only available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category of transactions | | |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service | | |\n| \"rawconfirmations\" | (numeric) | the raw confirmations of the transaction; available for ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category of transactions (number of blocks on top of this transaction's block) | | |\n| \"blockhash\" | (string) | the block hash containing the transaction; available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " categories of transactions | | |\n| \"blockindex\" | (numeric) | the block index containing the transaction; available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " categories of transactions | | |\n| \"txid\" | (string) | the transaction id; available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " categories of transactions | | |\n| \"time\" | (numeric) | the transaction time in seconds since epoch (midnight Jan 1 1970 GMT) | | |\n| \"timereceived\" | (numeric) | the time received in seconds since epoch (midnight Jan 1 1970 GMT); available for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "send", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "receive", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " categories of transactions | | |\n| \"comment\" | (string) | whether a comment is associated with the transaction | | |\n| \"otheraccount\" | (string) | for the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": " category of transactions; indicates the account which sent the funds (for receiving funds, positive amounts), or went to (for sending funds, negative amounts) | | |\n| \"size\" | (numeric) | transaction size in bytes | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-27" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-27" + }, + { + "text": "listunspent", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "listunspent ( minconf maxconf [\"address\", ... ] )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": " method returns an array of unspent transaction outputs, with a range between ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "minconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "maxconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": " (inclusive) confirmations. The method can, optionally, filter to only include ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "txouts", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": " paid to specified addresses.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "listunspent" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-28" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------------------------ | ----------------------------------- |\n| minconf | (numeric, optional, default=1) | the minimum confirmations to filter |\n| maxconf | (numeric, optional, default=9999999) | the maximum confirmations to filter |\n| \"address\" | (string) | a series of addresses |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-28" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-28" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | --------- | --------------------------------------------------------------------------- |\n| \"txid\" | (string) | the transaction id |\n| \"vout\" | (numeric) | the vout value |\n| \"generated\" | (boolean) | true if txout is a coinbase transaction output |\n| \"address\" | (string) | the address |\n| \"account\" | (string) | DEPRECATED the associated account, or \"\" for the default account |\n| \"scriptPubKey\" | (string) | the script key |\n| \"amount\" | (numeric) | the transaction amount |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this transaction's block) |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-28" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-28" + }, + { + "text": "lockunspent", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "lockunspent unlock [{ \"txid\": \"txid\", \"vout\": n }, ... ]", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "lockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": " method locks (unlock = ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": ") or unlocks (unlock = ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": ") specified transaction outputs. A locked transaction output will not be chosen by automatic coin selection, when spending the relevant coin. The locks are stored in memory only; at runtime a node always starts with zero locked outputs, and the locked output list is always cleared when a node stops or fails.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "See the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "listlockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": " calls to determine local\ntransaction state and info.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "lockunspent" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-29" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------- | ------------------------------------------------------------------- |\n| unlock | (boolean, required) | whether to unlock (true) or lock (false) the specified transactions |\n| \"txid\" | (string) | the transaction id |\n| \"vout\" | (numeric) | the output number |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-29" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-29" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ---------------------------------- |\n| true/false | (boolean) | whether the command was successful |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-29" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-29" + }, + { + "text": "move", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "move" + }, + { + "text": "move \"fromaccount\" \"toaccount\" amount ( minconf \"comment\" )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "move" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "move" + }, + { + "text": "move", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "move" + }, + { + "text": " method moves a specified amount from one account in your wallet to another.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "move" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-30" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| \"fromaccount\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |\n| \"toaccount\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |\n| amount | (numeric) | the quantity to move between accounts |\n| minconf | (numeric, optional, default=1) | only use funds with at least this many confirmations |\n| \"comment\" | (string, optional) | an optional comment, stored in the wallet only |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-30" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-30" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ------------------ |\n| true/false | (boolean) | true if successful |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-30" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "Sidd: Commenting out until Alright has time to review.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-30" + }, + { + "text": "opreturn_burn", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "opreturn_burn burn_amount hexstring ( txfee )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "opreturn_burn", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": " method creates an OP_RETURN transaction.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "The method returns a raw hex transaction that must then be broadcast via the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "opreturn-burn" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-31" + }, + { + "text": "| Name | Type | Description |\n| -------------- | ----------------------------------- | -------------------------------------------- |\n| \"burn_amount\" | (numeric, required) | the amount of coins to burn |\n| \"hexstring\" | (string, required) | the hex string to include in OP_RETURN data |\n| \"txfee\" | (numeric, optional, defalut=0.0001) | the transaction fee |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-31" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-31" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | --------------------------------------------------------------------------------- |\n| \"hex\" | (string) | raw hex of transaction; broadcast this using the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-31" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-31" + }, + { + "text": " method |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-31" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-31" + }, + { + "text": "Command", + "tagName": "h6", + "path": "smart-chains/api/wallet", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h6", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-32" + }, + { + "text": "Command", + "tagName": "h6", + "path": "smart-chains/api/wallet", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h6", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-33" + }, + { + "text": "resendwallettransactions", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "resendwallettransactions" + }, + { + "text": "resendwallettransactions", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "resendwallettransactions" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "resendwallettransactions" + }, + { + "text": "resendwallettransactions", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "resendwallettransactions" + }, + { + "text": " method immediately re-broadcasts unconfirmed wallet transactions to all peers. This method is intended only for testing; the wallet code periodically re-broadcasts automatically.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "resendwallettransactions" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-32" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-32" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-34" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ---------------------------------------------- |\n| \"transaction_id\" | (string) | an array of the rebroadcasted transaction id's |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-34" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-32" + }, + { + "text": "sendfrom", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "sendfrom \"account\" \"address\" amount ( minconf \"comment\" \"comment-to\" )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "DEPRECATED: Use ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": " instead.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "sendfrom", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": " method sends an amount from ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "account", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": " to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendfrom" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-33" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |\n| \"address\" | (string, required) | the address to receive funds |\n| amount | (numeric, required) | the amount (transaction fee not included) |\n| minconf | (numeric, optional, default=1) | only use funds with at least this many confirmations |\n| \"comment\" | (string, optional) | a comment used to store what the transaction is for; this is not part of the transaction, just kept in your wallet |\n| \"comment-to\" | (string, optional) | an optional comment to store the name of the person or organization to which you're sending the transaction; this is not part of the transaction, it is only kept in your wallet |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-33" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-35" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ------------------ |\n| \"transaction_id\" | (string) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-35" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-33" + }, + { + "text": "sendmany", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendmany" + }, + { + "text": "sendmany \"account\" { \"address\": amount, ... } ( minconf \"comment\" [ \"address\", ... ] )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendmany" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendmany" + }, + { + "text": "sendmany", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendmany" + }, + { + "text": " method can send multiple transactions at once. Amounts are double-precision floating point numbers.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendmany" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-34" + }, + { + "text": "| Name | Type | Description |\n| ------------------------------------ | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |\n| \"amounts\" { \"address\":amount, ... } | (\"string\":numeric) | the address (string) and the value (double-precision floating numeric) |\n| minconf | (numeric, optional, default=1) | only use the balance confirmed at least this many times |\n| \"comment\" | (string, optional) | a comment |\n| subtractfeefromamount | (string, optional) | a json array with addresses. The fee will be equally deducted from the amount of each selected address; the recipients will receive less than you enter in their corresponding amount field. If no addresses are specified here, the sender pays the fee. |\n| \"address\" | (string) | subtract fee from this address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-34" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-36" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ---------------------------------------------------------------------------------------------------- |\n| \"transaction_id\" | (string) | the transaction id for the send; only 1 transaction is created regardless of the number of addresses |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-36" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-34" + }, + { + "text": "sendtoaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendtoaddress" + }, + { + "text": "sendtoaddress \"address\" amount ( \"comment\" \"comment-to\" subtractfeefromamount)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendtoaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendtoaddress" + }, + { + "text": "sendtoaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendtoaddress" + }, + { + "text": " method sends an amount to a given address. The amount is real and is rounded to the nearest 0.00000001.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "sendtoaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-35" + }, + { + "text": "| Name | Type | Description |\n| --------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"komodoaddress\" | (string, required) | the receiving address |\n| \"amount\" | (numeric, required) | the amount to send (json requires all decimals values less than 1 begin with the characters '0.') |\n| \"comment\" | (string, optional) | a comment used to store what the transaction is for; this is not part of the transaction, just kept in your wallet |\n| \"comment-to\" | (string, optional) | a comment to store the name of the person or organization to which you're sending the transaction; this is stored in your local wallet file only |\n| subtractfeefromamount | (boolean, optional, default=false) | when ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-35" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-35" + }, + { + "text": ", the fee will be deducted from the amount being sent |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-35" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-37" + }, + { + "text": "| Name | Type | Description |\n| ----------------- | -------- | ------------------ |\n| \"transaction_id\" | (string) | the transaction id |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-37" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-35" + }, + { + "text": "setaccount", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "setaccount" + }, + { + "text": "setaccount \"address\" \"account\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setaccount" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setaccount" + }, + { + "text": "setaccount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setaccount" + }, + { + "text": " method sets the account associated with the given address.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setaccount" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-36" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| \"address\" | (string, required) | the address to be associated with an account |\n| \"account\" | (string, required) | MUST be set to the empty string \"\" to represent the default account; passing any other string will result in an error |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-36" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-36" + }, + { + "text": "setpubkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "setpubkey pubkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "setpubkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": " method sets the indicated ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": ". This method can be used in place of the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": " launch parameter, when necessary.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "Visit the section ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": " to understand when it is essential to set a pubkey and the consequences of setting it.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "This method works only once per daemon start. It can't be used to change the\npubkey that has already been set.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "setpubkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-37" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------ |\n| pubkey | (string) | the desired pubkey |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-37" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-38" + }, + { + "text": "| Name | Type | Description |\n| --------- | --------- | ------------------------------------------------- |\n| pubkey | (string) | the pubkey |\n| ismine | (boolean) | indicates whether the address belongs to the user |\n| R-address | (string) | the public address associated with the pubkey |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-38" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "You can find the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-37" + }, + { + "text": "settxfee", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "settxfee" + }, + { + "text": "settxfee amount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "settxfee" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "settxfee" + }, + { + "text": "settxfee", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "settxfee" + }, + { + "text": " method sets the transaction fee per kB.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "settxfee" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-38" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------- | ---------------------------------------------------------------- |\n| amount | (numeric, required) | the transaction fee in COIN/kB rounded to the nearest 0.00000001 |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-38" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-39" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | -------------------------- |\n| true/false | (boolean) | returns true if successful |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-39" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-38" + }, + { + "text": "signmessage", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "signmessage" + }, + { + "text": "signmessage \"address\" \"message\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "signmessage" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "signmessage" + }, + { + "text": "signmessage", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "signmessage" + }, + { + "text": " method signs a message via the private key of an address.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "signmessage" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-39" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | -------------------------------------- |\n| \"address\" | (string, required) | the address to use for the private key |\n| \"message\" | (string, required) | the message |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-39" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-40" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ----------------------------------------------- |\n| \"signature\" | (string) | the signature of the message encoded in base 64 |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-40" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "Create the signature:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "Verify the signature:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-39" + }, + { + "text": "walletlock", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "walletlock", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "walletlock", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": " method is neither active nor visible in the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "help", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": " method\nuntil the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": " passphrase\nis set.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "encryptwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "This feature is available only on chains where ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "-ac_public", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": " is enabled. Chains\nthat feature private transactions cannot use this feature.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "walletlock", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": " method re-locks a wallet that has a passphrase enabled via ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "encryptwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletlock" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-40" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-40" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-41" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-41" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-40" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-40" + }, + { + "text": "walletpassphrase", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "walletpassphrase \"passphrase\" (timeout)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "walletpassphrase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": " method is neither active nor visible in the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "help", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "\nmethod until the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "\npassphrase is set.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "encryptwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "This feature is available only on chains where ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "-ac_public", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": " is enabled. Chains\nthat feature private transactions cannot use this feature.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "walletpassphrase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": " method unlocks the wallet using the passphrase that was set by the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "encryptwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "timeout", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": " argument can be included to limit the length of time (in seconds) the wallet will remain unlocked.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrase" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-41" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ----------------------------- | ---------------------------------------------------------------------- |\n| \"passphrase\" | (string) | the passphrase that was set by the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-41" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-41" + }, + { + "text": " method |\n| timeout | (number in seconds, optional) | the amount of time for which the wallet should remember the passphrase |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-41" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-42" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-42" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-41" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-41" + }, + { + "text": "walletpassphrasechange", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "walletpassphrasechange \"oldpassphrase\" \"newpassphrase\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "walletpassphrasechange", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " method is neither active nor visible in the\n", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "help", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " method until the\n", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "encryptwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " passphrase is set.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "encryptwallet", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "This feature is available only on chains where ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "-ac_public", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " is enabled. Chains\nthat feature private transactions cannot use this feature.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "walletpassphrasechange", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " method changes ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "\"oldpassphrase\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": " to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "\"newpassphrase\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "walletpassphrasechange" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-42" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | ------------------ |\n| \"oldpassphrase\" | (string) | the old passphrase |\n| \"newpassphrase\" | (string) | the new passphrase |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-42" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-43" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-43" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-42" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-42" + }, + { + "text": "z_exportkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "z_exportkey \"z_address\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "z_exportkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": " method reveals the private z_key corresponding to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "z_address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "z_importkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-43" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------ | ---------------------------------- |\n| \"z_address\" | (string, required) | the z_address for the private key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-43" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-44" + }, + { + "text": "| Name | Type | Description |\n| ----- | -------- | --------------- |\n| \"key\" | (string) | the private key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-44" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-43" + }, + { + "text": "z_exportviewingkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "z_exportviewingkey \"z_address\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "z_exportviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": " method reveals the viewing key corresponding to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "z_address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "z_importviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportviewingkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-44" + }, + { + "text": "| Name | Type | Description |\n| ------------ | ------------------ | ---------------------------------- |\n| \"z_address\" | (string, required) | the z_address for the viewing key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-44" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-45" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | --------------- |\n| \"vkey\" | (string) | the viewing key |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-45" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-44" + }, + { + "text": "z_exportwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportwallet" + }, + { + "text": "z_exportwallet \"filename\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportwallet" + }, + { + "text": "z_exportwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportwallet" + }, + { + "text": " method exports all wallet keys, including both t address and z address types, in a human-readable format. Overwriting an existing file is not permitted.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-exportwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-45" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| \"filename\" | (string, required) | the filename, saved to the directory indicated by the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-45" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-45" + }, + { + "text": " parameter at daemon runtime (required) |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-45" + }, + { + "text": "exportdir", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-45" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-46" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------- |\n| \"path\" | (string) | the full path of the destination file |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-46" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-45" + }, + { + "text": "z_getbalance", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "z_getbalance \"address\" ( minconf )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "z_getbalance", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": " method returns the balance of a t address or z address belonging to the node’s wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "CAUTION: If ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "address", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": " is a watch-only z address, the returned balance may\nbe larger than the actual balance, as spends cannot be detected with incoming\nviewing keys.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-46" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------------------ | ------------------------------------------------------------ |\n| \"address\" | (string) | the selected z or t address |\n| minconf | (numeric, optional, default=1) | only include transactions confirmed at least this many times |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-46" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-47" + }, + { + "text": "| Name | Type | Description |\n| ------ | --------- | ---------------------------------------------------------------------- |\n| amount | (numeric) | the total amount received at this address (in the relevant COIN value) |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-47" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "The total amount received by address \"myaddress\" at least 5 blocks confirmed", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-46" + }, + { + "text": "z_getnewaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getnewaddress" + }, + { + "text": "z_getnewaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getnewaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getnewaddress" + }, + { + "text": "z_getnewaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getnewaddress" + }, + { + "text": " method returns a new z_address for receiving payments.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getnewaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-47" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-47" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-48" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ------------------ |\n| \"z_address\" | (string) | the new z_address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-48" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-47" + }, + { + "text": "z_getoperationresult", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "z_getoperationresult ([ \"operationid\", ... ])", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "z_getoperationresult", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": " method retrieves the result and status of an operation which has finished, and then removes the operation from memory.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "z_getoperationstatus", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationresult" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-48" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |\n| \"operationid\" | (string, optional) | a list of operation ids to query; if not provided, the method examines all operations known to the node |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-48" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": "| Name | Type | Description | | |\n| ------------------- | ----------------------- | ---------------------------------------------------------- | -------- | ----------- |\n| \"id\" | (string) | the operation id | | |\n| \"status\" | (string) | the result of the operation; can be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": "success", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": "failed", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": "executing", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": " |\n| \"creation_time\" | (numeric) | the creation time, in seconds since epoch (Jan 1 1970 GMT) | | |\n| \"result\": { ... } | (array of json objects) | | | |\n| \"txid\": | (string) | the transaction id | | |\n| \"execution_secs\" | (numeric) | the length of time to calculate the transaction | | |\n| \"method\" | (string) | the name of the method used in the operation | | |\n| \"params\": { ... } | (json) | | | |\n| \"fromaddress\" | (string) | the address from which funds are drawn | | |\n| \"amounts\": [ ... ] | (array of json objects) | | | |\n| \"address\" | (string) | the receiving address | | |\n| \"amount\" | (numeric) | the amount to receive | | |\n| \"minconf\" | (numeric) | the minimum number of confirmations required | | |\n| \"fee\" | (numeric) | the transaction fee | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-49" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-48" + }, + { + "text": "z_getoperationstatus", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "z_getoperationstatus ([ \"operationid\", ... ])", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "z_getoperationstatus", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": " message queries the operation status and any associated result or error data of any ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "operationid", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": " stored in local memory. The operation will remain in memory (unlike ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "z_getoperationresult", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": ", which removes the data from the local memory).", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-getoperationstatus" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-49" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| \"operationid\" | (array, optional) | a list of operation ids we are interested in; if an array is not provided, the method examines all operations known to the node |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-49" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": "| Name | Type | Description | | |\n| ------------------- | ----------------------- | ----------------------------------------------------------------------------- | ----------- | -------- |\n| \"id\" | (string) | the operation id | | |\n| \"status\" | (string) | the status of the operation; can be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": "success", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": "executing", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": "failed", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": " |\n| \"creation_time\" | (numeric) | the creation time, in seconds since epoch (Jan 1 1970 GMT) | | |\n| \"error\" : { ... } | (array of json objects) | | | |\n| \"code\" | (numeric) | the associated error code | | |\n| \"message\" | (string) | a message to indicate the nature of the error, if such a message is available | | |\n| \"method\" | (string) | the name of the method used in the operation | | |\n| \"params\" : { ... } | (array of json objects) | | | |\n| \"fromaddress\" | (string) | the address from which funds are drawn | | |\n| \"amounts\": [ ... ] | (array of json objects) | | | |\n| \"address\" | (string) | the receiving address | | |\n| \"amount\" | (numeric) | the amount to receive | | |\n| \"minconf\" | (numeric) | indicates the required number of mining confirmations | | |\n| \"fee\" | (numeric) | the fee | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-50" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-49" + }, + { + "text": "z_gettotalbalance", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "z_gettotalbalance ( minconf includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "z_gettotalbalance", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": " method returns the total value of funds, including both transparent and private, stored in the node’s wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "CAUTION: If the wallet contains watch-only z addresses the returned private\nbalance may be larger than the actual balance, as spends cannot be detected\nwith incoming viewing keys.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "While the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "interest", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": " property is returned for all KMD-based coin daemons,\nonly the main KMD chain utilizes the interest feature. KMD-based Smart Chains\nwill always return a ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "0.00", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": " interest value.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-gettotalbalance" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-50" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | ------------------------------------------------------------------------------------------- |\n| minconf | (numeric, optional, default=1) | only include private and transparent transactions confirmed at least this many times |\n| includeWatchonly | (bool, optional, default=false) | also include balance in watchonly addresses (see 'importaddress' and 'z_importviewingkey') |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-50" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-51" + }, + { + "text": "| Name | Type | Description |\n| ------------- | --------- | ------------------------------------------------------- |\n| \"transparent\" | (numeric) | the total balance of transparent funds |\n| \"interest\" | (numeric) | the total balance of unclaimed interest earned |\n| \"private\" | (numeric) | the total balance of private funds |\n| \"total\" | (numeric) | the total balance of both transparent and private funds |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-51" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-50" + }, + { + "text": "z_importkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "z_importkey \"z_privatekey\" ( rescan startHeight )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "z_importkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": " method imports ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "z_privatekey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": " to your wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "This call can take minutes to complete if ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "rescan", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": " is true.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "The optional parameters are currently not functional with KMD-based\nblockchains.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "z_exportkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "| Name | Type | Description | | |\n| --------------- | -------------------------------------------- | ----------------------------------------------------------------------------- | ---- | -------------- |\n| \"z_privatekey\" | (string, required) | the z_privatekey (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "z_exportkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": ") | | |\n| rescan | (string, optional, default=", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "\"whenkeyisnew\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": ") | rescan the wallet for transactions; can be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "yes", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "no", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "whenkeyisnew", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": " |\n| startHeight | (numeric, optional, default=0) | the block height at which to begin the rescan | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "z_exportkey", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-51" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-52" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-52" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-51" + }, + { + "text": "z_importviewingkey", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "z_importviewingkey \"viewing_key\" ( rescan startHeight )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "z_importviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": " adds a viewing key to your wallet. This method allows you to view the balance in a z address that otherwise does not belong to your wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "z_exportviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "This call can take minutes to complete if ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "rescan", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": " is true.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "The optional parameters are currently not functional for KMD-based\nblockchains.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importviewingkey" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": "| Name | Type | Description | | |\n| -------------- | ------------------------------------------ | ------------------------------------------------------------- | ------ | ---------------- |\n| \"viewing_key\" | (string, required) | the viewing key | | |\n| rescan | (string, optional, default=\"whenkeyisnew\") | whether to rescan the wallet for transactions; can be ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": "\"yes\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": "\"no\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": " | ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": "\"whenkeyisnew\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": " |\n| startHeight | (numeric, optional, default=0) | block height to start rescan | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-52" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-53" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-53" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-52" + }, + { + "text": "z_importwallet", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "z_importwallet \"filename\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "z_importwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": " method imports t address and z address keys from a wallet export file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "z_exportwallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-importwallet" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-53" + }, + { + "text": "| Name | Type | Description |\n| ---------- | ------------------ | --------------- |\n| \"filename\" | (string, required) | the wallet file |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-53" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-54" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-54" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-53" + }, + { + "text": "z_listaddresses", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "z_listaddresses ( includeWatchonly )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "z_listaddresses", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": " method returns the list of z addresses belonging to the wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "z_importviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listaddresses" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-54" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------- | -------------------------------- |\n| includeWatchonly | (bool, optional, default=false) | also include watchonly addresses |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-54" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-55" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------- |\n| \"z_address\" | (string) | a z address belonging to the wallet |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-55" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-54" + }, + { + "text": "z_listoperationids", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listoperationids" + }, + { + "text": "z_listoperationids", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listoperationids" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listoperationids" + }, + { + "text": "z_listoperationids", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listoperationids" + }, + { + "text": " method returns the list of operation ids currently known to the wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listoperationids" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-55" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | ----------------------------------------------------- |\n| \"status\" | (string, optional) | filter result by the operation's state e.g. \"success\" |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-55" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-56" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | --------------------------------------- |\n| \"operationid\" | (string) | an operation id belonging to the wallet |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-56" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-55" + }, + { + "text": "z_listreceivedbyaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listreceivedbyaddress" + }, + { + "text": "z_listreceivedbyaddress \"address\" ( minconf )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listreceivedbyaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listreceivedbyaddress" + }, + { + "text": "z_listreceivedbyaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listreceivedbyaddress" + }, + { + "text": " method returns a list of amounts received by a z address belonging to the node’s wallet.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listreceivedbyaddress" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-56" + }, + { + "text": "| Name | Type | Description |\n| ------- | ------------------------------ | ------------------------------------------------------------ |\n| address | (string) | the private address. |\n| minconf | (numeric, optional, default=1) | only include transactions confirmed at least this many times |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-56" + }, + { + "text": "Result", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "result" + }, + { + "text": "An array of json objects, each having the properties below.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "result" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | -------------------------------------------- | ------------------------------------------------------------------------------- |\n| txid | (string) | the transaction id |\n| amount | (numeric) | the amount of value in the note |\n| memo | (string) | hexadecimal string representation of memo field |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this transaction's block) |\n| jsindex | (sprout) | (numeric, received only by sprout addresses) the joinsplit index |\n| jsoutindex | (numeric, received only by sprout addresses) | the output index of the joinsplit |\n| outindex | (numeric, sapling) | the output index |\n| change | (boolean) | true if the address that received the note is also one of the sending addresses |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "result" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-56" + }, + { + "text": "z_listunspent", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "z_listunspent ( minconf maxconf includeWatchonly [\"zaddr\", ...] )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "z_listunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": " method returns an array of unspent shielded notes.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "The method can also filter to only include results that have between ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "minconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "maxconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": " (inclusive) confirmations, and also for specified z_addresses (", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "[\"zaddr\", ...])", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "When ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "minconf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": " is ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": " unspent notes with zero confirmations are returned, even though they are not immediately spendable.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "Results are an array of Objects, each of which has:\n{txid, jsindex, jsoutindex, confirmations, address, amount, memo} (Sprout)\n{txid, outindex, confirmations, address, amount, memo} (Sapling)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-listunspent" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-57" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |\n| minconf | (numeric, optional, default=1) | the minimum confirmations to filter |\n| maxconf | (numeric, optional, default=9999999) | the maximum confirmations to filter |\n| includeWatchonly | (bool, optional, default=false) | whether to also include watchonly addresses (see ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-57" + }, + { + "text": "z_importviewingkey", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-57" + }, + { + "text": ") |\n| addresses | (array) | a json array of z addresses (both Sprout and Sapling) to act as a filter; duplicate addresses are not allowed |\n| address | (string) | a z address |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-57" + }, + { + "text": "z_importviewingkey", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-57" + }, + { + "text": "Results", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "results" + }, + { + "text": "An array of json objects, each having the properties below.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "results" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------- |\n| txid | (string) | the transaction id |\n| jsindex | (numeric) | the joinsplit index |\n| jsoutindex | (numeric, only returned on sprout addresses) | the output index of the joinsplit |\n| outindex | (numeric, only returned on sapling addresses) | the output index |\n| \"confirmations\" | (numeric) | a confirmation number that is aware of the dPoW security service |\n| \"rawconfirmations\" | (numeric) | the raw confirmations (number of blocks on top of this transaction's block) |\n| spendable | (boolean) | true if note can be spent by wallet, false if note has zero confirmations, false if address is watchonly |\n| address | (string) | the shielded address |\n| amount | (numeric) | the amount of value in the note |\n| memo | (string) | hexadecimal string representation of memo field |\n| change | (boolean) | true if the address that received the note is also one of the sending addresses |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "results" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-57" + }, + { + "text": "z_mergetoaddress", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "z_mergetoaddress [ \"fromaddress\", ... ] \"toaddress\" ( fee ) ( transparent_limit ) ( shielded_limit ) ( memo )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "CAUTION: ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "z_mergetoaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": " is DISABLED but can be enabled as an\nexperimental feature.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "z_mergetoaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": " method merges multiple utxos and notes into a single utxo or note. The method works for both t addresses and z addresses, both separately and in combination. Coinbase utxos are ignored; use ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "z_shieldcoinbase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": " to combine those into a single note.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "This is an asynchronous operation, and utxos selected for merging will be locked. If there is an error, they are unlocked. The RPC call ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "listlockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": " can be used to return a list of locked utxos.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "The number of utxos and notes selected for merging can be limited by the caller. If the transparent limit parameter is set to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": ", the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "mempooltxinputlimit", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": " option will determine the number of utxos. Any limit is constrained by the consensus rule defining a maximum transaction size of 100000 bytes.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-mergetoaddress" + }, + { + "text": "The fromaddresses array", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "The following special strings are accepted inside the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "fromaddresses", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": " array:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"*\"", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge both utxos and notes from all addresses belonging to the wallet", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"*\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge both utxos and notes from all addresses belonging to the wallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"ANY_TADDR\"", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge utxos from all t addresses belonging to the wallet", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"ANY_TADDR\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge utxos from all t addresses belonging to the wallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"ANY_ZADDR\"", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge notes from all z addresses belonging to the wallet", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "\"ANY_ZADDR\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": ": Merge notes from all z addresses belonging to the wallet", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "If a special string is given, any given addresses of that type will be ignored", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "the-fromaddresses-array" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": "| Name | Type | Description |\n| ------------------ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| fromaddresses | (string, required) | |\n| \"address\" | (string) | can be a t address or a z address |\n| \"toaddress\" | (string, required) | the t address or z address to receive the combined utxo |\n| fee | (numeric, optional, default=0.0001) | the fee amount to attach to this transaction |\n| transparent_limit | (numeric, optional, default=50) | limit on the maximum number of transparent utxos to merge; you may set this value to 0 to use the node option ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": "mempooltxinputlimit", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": " |\n| shielded_limit | (numeric, optional, default=10) | limit on the maximum number of hidden notes to merge; you may set this value to 0 to merge as many as will fit in the transaction |\n| \"memo\" | (string, optional) | encoded as hex; when ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": "toaddress", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": " is a z address, this value will be stored in the memo field of the new note |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": "mempooltxinputlimit", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-58" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-57" + }, + { + "text": "| Name | Type | Description |\n| --------------------------- | --------- | ----------------------------------------------------------------------------------- |\n| \"remainingUTXOs\" | (numeric) | the number of utxos still available for merging |\n| \"remainingTransparentValue\" | (numeric) | the value of utxos still available for merging |\n| \"remainingNotes\" | (numeric) | the number of notes still available for merging |\n| \"remainingShieldedValue\" | (numeric) | the value of notes still available for merging |\n| \"mergingUTXOs\" | (numeric) | the number of utxos being merged |\n| \"mergingTransparentValue\" | (numeric) | the value of utxos being merged |\n| \"mergingNotes\" | (numeric) | the number of notes being merged |\n| \"mergingShieldedValue\" | (numeric) | the value of notes being merged |\n| \"opid\" | (string) | an operationid to pass to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-57" + }, + { + "text": "z_getoperationstatus", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-57" + }, + { + "text": " to get the result of the operation |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-57" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-58" + }, + { + "text": "z_sendmany", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "z_sendmany \"fromaddress\" [ { \"address\": ..., \"amount\": ... }, ... ] ( minconf ) ( fee )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": " method sends one or more transactions at once, and allows for sending transactions of types ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "t --> t", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "t --> z", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "z --> z", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "z --> t", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": ". It is the principle method for dealing with shielded ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "z", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": " transactions in the Komodo ecosystem.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "amount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": " values are double-precision floating point numbers. Change from a t address flows to a new t address address, while change from z address returns to itself. When sending coinbase utxos to a z address, change is not allowed. The entire value of the utxo(s) must be consumed. Currently, the maximum number of z address outputs is 54 due to transaction-size limits.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-sendmany" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-59" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------ |\n| \"fromaddress\" | (string, required) | the sending t address or z address |\n| \"amounts\" | (array of json objects) | |\n| \"address\" | (string, required) | the receiving address; can be a t address or z address |\n| \"amount\" | (numeric, required) | the numeric amount |\n| \"memo\" | (string, optional) | if the address is a z address, this property accepts raw data represented in hexadecimal string format |\n| minconf | (numeric, optional, default=1) | only use funds confirmed at least this many times |\n| fee | (numeric, optional, default=0.0001) | the fee amount to attach to this transaction |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-59" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-58" + }, + { + "text": "| Name | Type | Description |\n| ------------- | -------- | ---------------------------------------------------------------------------------- |\n| \"operationid\" | (string) | an operationid to pass to z_getoperationstatus to get the result of the operation |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-58" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-59" + }, + { + "text": "z_shieldcoinbase", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "z_shieldcoinbase \"fromaddress\" \"tozaddress\" ( fee ) ( limit )", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "z_shieldcoinbase", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": " method shields transparent coinbase funds by sending the funds to a shielded z address. This is an asynchronous operation and utxos selected for shielding will be locked. If there is an error, they are unlocked.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "The RPC call ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "listlockunspent", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": " can be used to return a list of locked utxos. The number of coinbase utxos selected for shielding can be limited by the caller. If the limit parameter is set to zero, the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "mempooltxinputlimit", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": " option will determine the number of uxtos. Any limit is constrained by the consensus rule defining a maximum transaction size of 100000 bytes.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "mempooltxinputlimit", + "tagName": "a", + "path": "smart-chains/api/wallet", + "closestElementReference": "z-shieldcoinbase" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------- |\n| \"fromaddress\" | (string, required) | the address is a t address or ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": "\"*\"", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": " for all t address belonging to the wallet |\n| \"toaddress\" | (string, required) | the address is a z address |\n| fee | (numeric, optional, default=0.0001) | the fee amount to attach to this transaction |\n| limit | (numeric, optional, default=50) | limit on the maximum number of utxos to shield; set to ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": " to use node option ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": "mempooltxinputlimit", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-60" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-59" + }, + { + "text": "| Name | Type | Description |\n| ---------------- | --------- | ---------------------------------------------------------------------------------- |\n| \"remainingUTXOs\" | (numeric) | the number of coinbase utxos still available for shielding |\n| \"remainingValue\" | (numeric) | the value of coinbase utxos still available for shielding |\n| \"shieldingUTXOs\" | (numeric) | the number of coinbase utxos being shielded |\n| \"shieldingValue\" | (numeric) | the value of coinbase utxos being shielded |\n| \"opid\" | (string) | an operationid to pass to z_getoperationstatus to get the result of the operation |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-59" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "You can find your ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": " in the coin's ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "examples-60" + }, + { + "text": "zcbenchmark", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "zcbenchmark benchmarktype samplecount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "zcbenchmark", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": " method runs a benchmark of the selected ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "benchmarktype", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": ". This benchmark is calculated ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "samplecount", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": " times.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "When finished, the method returns the running times of each sample.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcbenchmark" + }, + { + "text": "Arguments", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-61" + }, + { + "text": "| Name | Type | Description |\n| --------------- | ------------------ | ----------------------------- |\n| \"benchmarktype\" | (string, required) | the type of the benchmark |\n| \"samplecount\" | (numeric) | the number of samples to take |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "arguments-61" + }, + { + "text": "Response", + "tagName": "h3", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-60" + }, + { + "text": "| Name | Type | Description |\n| ------------- | --------- | ---------------------------------------------------- |\n| \"runningtime\" | (numeric) | the time it took to run the selected ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-60" + }, + { + "text": "benchmarktype", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-60" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-60" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "response-60" + }, + { + "text": "zcrawjoinsplit", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "zcrawjoinsplit rawtx inputs outputs vpub_old vpub_new", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "inputs: a JSON object mapping {note: zcsecretkey, ...}", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "outputs: a JSON object mapping {zcaddr: value, ...}", + "tagName": "li", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "Splices a joinsplit into a raw transaction. Inputs are unilaterally confidential.\nOutputs are confidential between sender/receiver. The vpub_old and\nvpub_new values are globally public and move transparent value into\nor out of the confidential value store, respectively.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "Note: The caller is responsible for delivering the output enc1 and\nenc2 to the appropriate recipients, as well as signing rawtxout and\nensuring it is mined. (A future RPC call will deliver the confidential\npayments in-band on the blockchain.)", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawjoinsplit" + }, + { + "text": "zcrawkeygen", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": "zcrawkeygen", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": "the ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": "zcrawkeygen", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": " method generates a zcaddr which can send and receive confidential values.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawkeygen" + }, + { + "text": "zcrawreceive zcsecretkey encryptednote", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": "zcrawreceive zcsecretkey encryptednote", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": "Decrypts ", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": "encryptednote", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": " and checks if the coin commitments\nare in the blockchain as indicated by the \"exists\" result.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcrawreceive-zcsecretkey-encryptednote" + }, + { + "text": "zcsamplejoinsplit", + "tagName": "h2", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcsamplejoinsplit" + }, + { + "text": "Perform a joinsplit and return the JSDescription.", + "tagName": "p", + "path": "smart-chains/api/wallet", + "closestElementReference": "zcsamplejoinsplit" + } + ], + "smart-chains/changelog": [ + { + "text": "Change Log", + "tagName": "h1", + "path": "smart-chains/changelog", + "closestElementReference": "change-log" + }, + { + "text": "v0.8.1 [Falkor]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "This update is mandatory and includes several security fixes, code refactoring, optimizations, and other improvements.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Update Rust compiler to 1.69.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Add notarisations specific unit tests.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Refactoring the legacy code that is associated with PAX, KV, and ratification transactions has resulted in a slight decrease in block verification and overall synchronization time.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Bump libcurl to 8.4.0 (", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "CVE-2023-38545", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": ", ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "CVE-2023-38546", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": " fix).", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "CVE-2023-38545", + "tagName": "a", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "CVE-2023-38546", + "tagName": "a", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Fix the value pools (sprout, sapling) calculation issue.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "Minor fixes and updates.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-1-falkor" + }, + { + "text": "v0.8.0-beta1 [Viserion]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "This is a mandatory update, Komodo Season 7 HF planned on height ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "3484958", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": " for KMD, and timestamp ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "1688132253", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": " (", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Fri Jun 30 2023 13:37:33 GMT+0000", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": ") for assetchains. All wallets/nodes should be updated to the latest (", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "0.8.0", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": ") software to continue following mainnet.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Reduce AUR 5% -> 0.01% (start from S7), as it announced in ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "KIP-0001", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "KIP-0001", + "tagName": "a", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Memory Usage Improvement: The memory usage of ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "komodod", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": " has been reduced by not keeping Equihash solutions for all block headers in memory.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Node Startup Performance Improvements.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Security fixes.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Upgrade project dependencies (libevent).", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Add ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "z_gettreestate", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": " rpc.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "Minor fixes and updates.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-8-0-beta1-viserion" + }, + { + "text": "v0.7.2 [Longpan]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "This is a mandatory update, Komodo Season 6 HF planned on height 2963330 for KMD, and timestamp 1656077853 (Fri Jun 24 2022 13:37:33 GMT+0000) for assetchains. All wallets/nodes should be updated to the latest (0.7.2) software to continue following mainnet.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Fix build with new glibc 2.34 on Linux platforms.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Fix unoptimized depends build (bdb, boost, protobuf, zeromq).", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Remove Verus (VRSC) legacy code: VerusHash, VerusHash 1.1, Verus POS/stake, etc. Chains which used VerusHash as primary algo, like LUMBER will be incompatible with new version of daemon.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Code refactoring. Perfomance boost on some operations.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Restore -exchange command line arg for an exchanges (this will disable interest/reward calculations and will set nLockTime in newly created transactions to zero).", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Fix / refactor komodo_block_prg and komodo_block_unlocktime internals logic, get rid of VerusHash usage in it. Starting from this release all chains using -ac_timeunlockfrom, -ac_timeunlockto, -ac_timelockgte will be incompatible with new daemon (there was no well-known public blockchains using these features). Newly created blockchains (ACs) using these parameters will work without any limitations on 0.7.2 and higher versions of software.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "hf22 / hfnet consensus changes and fixes, related to well-known issues of long-gaps between blocks, disappearing txes from mempool in-case of big gaps between blocks, etc. These changes aimed to improve the network stability, help to get rid of such gaps, and make txes propagation more reliable and stable.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "Minor fixes and updates.", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "version bump", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-2-longpan" + }, + { + "text": "v0.7.1 [Hydra]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "general refactoring", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "general enhancements", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "update dns seed", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "rm dead chains", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "bump version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-1-hydra" + }, + { + "text": "v0.7.0 [Medusa]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "disable vSolutions size > 1 after HF", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "fix -disablewallet arg on getblocktemplate caused daemon crash", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "add zHTLC functionality", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "update assetchains file", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "add S5 pubkeys and HF bits", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "update CI", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "bump version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "general enhancements", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "Pools and miners please note:", + "tagName": "p", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "we recommend running your KMD mining node with ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "-minrelaytxfee=0.000035 -opretmintxfee=0.004", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-7-0-medusa" + }, + { + "text": "v0.6.1 [Draconic Serpent]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "CC improvements", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "Bump deprecation height", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "added asmap utility", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "remove inactive ACs", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "tar: unpack as current user", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "bump version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-1-draconic-serpent" + }, + { + "text": "v0.6.0 [Draconic Serpent]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "fix initial sync", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "rm template matching and pseudo opcodes", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "fix notarization test segfault", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "update CI/CD", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "disable THROW_IF_SYNCING", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "added CBufferedFile fix (thx LarryRuane)", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "added unit test (streams_tests.cpp rewritten for Google C++ Testing Framework)", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "additional komodo_block_load test", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "remove invalid TXs (reward related) from mempool", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "update openssl", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "avoid duplicate getheaders requests", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "fix linearize tool", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "fix fingerprint encoding", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "remove time adjustment", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "add dPoW S4 array and activation height/timestamp", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "bump KMD version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "Pools and miners please note:", + "tagName": "p", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "we recommend running your KMD mining node with ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "-minrelaytxfee=0.000035 -opretmintxfee=0.004", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-6-0-draconic-serpent" + }, + { + "text": "v0.5.2 [Obsidian Dragon]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update boost", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update libcurl", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update ccache", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update proton", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update seeds", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Bump min protocol version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Bump protocol version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Remove old seeds", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Add tests and CI", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Update univalue", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Bump KMD version", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Remove CEAL, CHAIN, COMMOD, DSEC, KMDICE, BNTN, EQL, DION, PRLPY", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Add ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "opretmintxfee", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": " parameter", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "Pools and miners please note:", + "tagName": "p", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "we recommend restarting your KMD mining node with ", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "-minrelaytxfee=0.000035 -opretmintxfee=0.004", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-2-obsidian-dragon" + }, + { + "text": "v0.5.0 [Obsidian Dragon]", + "tagName": "h2", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "zMempool fix", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "KMDnuke fix", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "POS staking algo change", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "AC related fixes", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "CC fixes and additions", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "add season 3.5 pubkey array", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + }, + { + "text": "protocol version bump", + "tagName": "li", + "path": "smart-chains/changelog", + "closestElementReference": "v0-5-0-obsidian-dragon" + } + ], + "smart-chains": [ + { + "text": "Introduction to Smart Chain Documentation", + "tagName": "h1", + "path": "smart-chains", + "closestElementReference": "introduction-to-smart-chain-documentation" + }, + { + "text": "Welcome to the Smart Chain technical documentation.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "introduction-to-smart-chain-documentation" + }, + { + "text": "About the Smart Chain Section", + "tagName": "h4", + "path": "smart-chains", + "closestElementReference": "about-the-smart-chain-section" + }, + { + "text": "This documentation is intended for developers learning about, building, and interacting with Smart Chain products.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-the-smart-chain-section" + }, + { + "text": "Link to Simple Installation Procedure", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-the-smart-chain-section" + }, + { + "text": "Link to Simple Installation Procedure", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "about-the-smart-chain-section" + }, + { + "text": "Conceptual Overview", + "tagName": "h4", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "A conceptual overview of Smart Chain technology can be found in the ", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Start Here", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": " > ", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Product Introductions", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": " section.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to Smart Chain Product Introduction", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to Smart Chain Product Introduction", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Also, the reader may turn to the Core Technology Discussion section for a thorough explanation.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to Core Technology Discussion section", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "Link to Core Technology Discussion section", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "conceptual-overview" + }, + { + "text": "About Smart Chain Setup", + "tagName": "h4", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "The Smart Chain Setup section contains basic information about Smart Chains and their creation. Topics include the following:", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Installing Smart Chain Software from Source Code", + "tagName": "li", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Installing Smart Chain Software from Source Code", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Installing Smart Chain Software from Source Code", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Interacting with Smart Chains", + "tagName": "li", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Interacting with Smart Chains", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Interacting with Smart Chains", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Smart Chain Launch Parameters Common to Most Blockchain Software", + "tagName": "li", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Smart Chain Launch Parameters Common to Most Blockchain Software", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "Smart Chain Launch Parameters Common to Most Blockchain Software", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-setup" + }, + { + "text": "About Smart Chain Tutorials", + "tagName": "h4", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": "The Smart Chain Tutorials section contains various tutorials that provide instruction in Smart Chain creation and usage.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": "For a walkthrough covering multiple tutorials in a targeted fashion, please see the ", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": " section.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "a", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-tutorials" + }, + { + "text": "About Smart Chain API", + "tagName": "h4", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-api" + }, + { + "text": "The Smart Chain API section contains all available API commands for a default Smart Chain daemon.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-api" + }, + { + "text": "These API commands can also be called Remote Procedure Calls, or RPCs.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-api" + }, + { + "text": "The API section does not include commands that are unique to Antara modules, as Antara modules are not active by default on a Smart Chain daemon. Please see the Antara section for further information.", + "tagName": "p", + "path": "smart-chains", + "closestElementReference": "about-smart-chain-api" + } + ], + "smart-chains/setup/common-runtime-parameters": [ + { + "text": "Common Runtime Parameters", + "tagName": "h1", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "The following is an abbreviated list of runtime parameters and settings that can be initiated in a ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "Smart Chain's .conf file.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "Smart Chain's .conf file.", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "These commands largely derive from the upstream Bitcoin software, ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "bitcoind", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "Komodo is a fork of Zcash, and Zcash is a privacy-centric fork of Bitcoin. Therefore, essentially all runtime parameters and API commands available in both Bitcoin and Zcash are available in Komodo.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "To see additional Bitcoin-based runtime parameters not included here, please visit ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "the relevant Bitcoin wiki page", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "the relevant Bitcoin wiki page", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "introduction" + }, + { + "text": "addnode", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " tells the daemon which nodes are trusted to act as seed nodes. After connecting to a node via ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": ", the trusted node will send your node the list of all nodes that it is connected to, and your node will then connect to these additional nodes until ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "the max limit", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " is reached.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "the max limit", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "This contrasts from the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "connect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " runtime parameter, as the latter does not attempt to connect your node to additional nodes.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "connect", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "If you are behind a firewall or are having issues connecting to the network, ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " is a stronger option.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "On the other hand, if you want to connect only to designated and trusted nodes, ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "connect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " is a stronger option.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "If you run multiple nodes that are connected via a LAN, it is not necessary for each node to open multiple connections. Instead, use ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "connect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " to connect all to one primary node, and then use ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": " on the primary node to connect to the network.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "The p2p port must not be blocked by a firewall. If the computers do not have public IP addresses, you will need to port-forward the p2p port on both computers and append the forwarded port to the IP.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addnode" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples" + }, + { + "text": "./komodod -ac_name=EXAMPLECHAIN -ac_supply=1000000 -addnode=:8096", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples" + }, + { + "text": "Using addnode as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples" + }, + { + "text": "addressindex", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": " instructs a Smart Chain to maintain an index of all addresses and balances.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "We recommend that the user ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": " before initiating this parameter.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": " is enabled by default on any Smart Chain that utilizes Antara.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "reindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": " parameter is not a viable alternative method for re-syncing\nthe Smart Chain in this circumstance.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "addressindex" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": "Using ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": " as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": "Using ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": "addressindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": " as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-2" + }, + { + "text": "bantime", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bantime" + }, + { + "text": "bantime", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bantime" + }, + { + "text": " sets the default number of seconds for a ban initiated during the daemon's session. The default is 86400.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bantime" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-3" + }, + { + "text": "Using bantime as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-3" + }, + { + "text": "Using bantime as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-3" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-3" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-3" + }, + { + "text": "bind", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": "bind", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": " instructs the Smart Chain daemon to bind to a given address and always listen on it.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": "[host]:port", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": " notation for IPv6.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "bind" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-4" + }, + { + "text": "Using bind as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-4" + }, + { + "text": "Using bind as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-4" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-4" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-4" + }, + { + "text": "connect", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "connect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": " connects the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": " server to a trusted peer node, but not to request or add any additional nodes.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "Please refer to the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": " parameter entry for more information.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "addnode", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "connect" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-5" + }, + { + "text": "Using connect as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-5" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-5" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-5" + }, + { + "text": "conf", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": "conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": " allows the user to indicate an alternative configuration file for the Smart Chain daemon. The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": "conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": " runtime parameter requires an absolute path. For example, ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": "/home/user/mydirectory/MYCOIN/MYCOIN.conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": ". Once the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": "conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": " parameter is activated, the default configuration file is otherwise ignored.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "conf" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-6" + }, + { + "text": "Using ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-6" + }, + { + "text": "conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-6" + }, + { + "text": " as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-6" + }, + { + "text": "datadir", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "datadir", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": " allows the user to indicate an alternative blockchain-data directory for the Smart Chain daemon. The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "datadir", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": " parameter requires an absolute path. For example, ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "home/user/mydirectory/MYCOIN/MYCOINDATA", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": ". Once this parameter is activated, the daemon will ignore the default data directory.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "The name of the alternative directory must match the value provided to the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "ac_name", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "ac_name", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "datadir" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-7" + }, + { + "text": "Using ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-7" + }, + { + "text": "datadir", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-7" + }, + { + "text": " as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-7" + }, + { + "text": "donation", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "donation" + }, + { + "text": "donation", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "donation" + }, + { + "text": " donates all user rewards to a specific address. This value must be set to a 33 byte pubkey.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "donation" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-8" + }, + { + "text": "Using donation as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-8" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-8" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-8" + }, + { + "text": "exchange", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exchange" + }, + { + "text": "exchange", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exchange" + }, + { + "text": " forfeits all user rewards to miners. Set this to explicitly not claim user rewards.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exchange" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-9" + }, + { + "text": "Using exchange as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-9" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-9" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-9" + }, + { + "text": "exportdir", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "exportdir", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": " tells the Smart Chain daemon where to store the wallet backup files created through the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "backupwallet", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "dumpwallet", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": " calls.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "backupwallet", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "dumpwallet", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "exportdir" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-10" + }, + { + "text": "Using exportdir as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-10" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-10" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-10" + }, + { + "text": "gen", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "gen", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " instructs the daemon to attempt to generate new blocks, and thereby mine new coins.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "See also ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "This parameter should be avoided. Instead, start the daemon without the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "-gen", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "\nparameter. Once the Smart Chain is launched, wait until the blockchain is\nsynced to the current block and then execute the\n", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " method. The sync status\nof the blockchain can be found by executing the\n", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " method and comparing the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "\nand ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "longestchain", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " properties.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "setgenerate", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "If the ", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "genproclimit", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " property is not specified after the ", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "gen", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " option, the daemon mines using 1 thread.", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "To mine using all available threads, use: ", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "-genproclimit=-1", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "gen=0", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " in the .conf file on an Smart Chain where ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": " is enabled sets the daemon to\nstake using all available coins", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "ac_staked", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "gen" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-11" + }, + { + "text": "Using gen as a runtime parameter to mine using 4 threads:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-11" + }, + { + "text": "genproclimit", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": "genproclimit", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": " sets the number of threads to be used for mining. To use all the available processors, use the value ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": "-1", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": "Setting ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": "genproclimit=0", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": " instructs the daemon to stake (if possible) using all\navailable coins.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "genproclimit" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-12" + }, + { + "text": "Using genproclimit as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-12" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-12" + }, + { + "text": " file, to mine using 2 threads:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-12" + }, + { + "text": "keypool", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "keypool" + }, + { + "text": "keypool", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "keypool" + }, + { + "text": " instructs the daemon to pre-generate a certain number of public/private key pairs. This can facilitate ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "keypool" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "keypool" + }, + { + "text": " backups being valid for both prior transactions and several dozen future transactions.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "keypool" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-13" + }, + { + "text": "Using keypool as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-13" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-13" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-13" + }, + { + "text": "listen", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "listen" + }, + { + "text": "listen", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "listen" + }, + { + "text": " instructs the daemon to listen for RPC calls on the network. It is enabled by default, except when ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "listen" + }, + { + "text": "connect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "listen" + }, + { + "text": " is used.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "listen" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-14" + }, + { + "text": "Using listen as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-14" + }, + { + "text": "Using listen as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-14" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-14" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-14" + }, + { + "text": "maxconnections", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "maxconnections" + }, + { + "text": "maxconnections", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "maxconnections" + }, + { + "text": " sets the maximum number of inbound and outbound connections.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "maxconnections" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-15" + }, + { + "text": "Using maxconnections as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-15" + }, + { + "text": "Using maxconnections as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-15" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-15" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-15" + }, + { + "text": "mempooltxinputlimit", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": "mempooltxinputlimit", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": " is a runtime parameter inherited from Zcash. The functionality it facilitates is now enabled by default, and therefore the parameter is deprecated. Please see ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": "the Zcash documentation for more information", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": "the Zcash documentation for more information", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "mempooltxinputlimit" + }, + { + "text": "port", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": "port", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": " tells the daemon to listen for p2p connections on the indicated TCP port, overwriting the default. The default p2pport for the Komodo(KMD) blockchain is 7770. The default p2p port of a Smart Chain is solely dependant on the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": "-ac_", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": "Antara customization parameters", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": " and values used to launch it.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": "Antara customization parameters", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "port" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-16" + }, + { + "text": "Using port as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-16" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-16" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-16" + }, + { + "text": "proxy", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "proxy" + }, + { + "text": "proxy", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "proxy" + }, + { + "text": " allows the user to connect via a ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "proxy" + }, + { + "text": "SOCKS5", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "proxy" + }, + { + "text": " proxy.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "proxy" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-17" + }, + { + "text": "Using proxy as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-17" + }, + { + "text": "Using proxy as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-17" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-17" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-17" + }, + { + "text": "pubkey", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": " sets an address to use as a change address for all transactions. This value must be set to a 33 byte pubkey. All mined/staked coins will also be sent to this address. We recommend that the user ensure they own the corresponding ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "privkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": " of their chosen ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": ", lest their funds be sent to a ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": " they do not own or control.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": " parameter is required for all Antara-enabled chains. All Antara transactions will utilize the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": " as an integral property.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "pubkey" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-18" + }, + { + "text": "Using pubkey as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-18" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-18" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-18" + }, + { + "text": "Using pubkey as a startup parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-18" + }, + { + "text": "regtest", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "regtest", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": " instructs the Smart Chain daemon to run a regression test network. Typically, the user will create a disposable Smart Chain for these purposes. The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": " parameter is not required in this instance.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "ac_supply", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "(A regression-test network is a useful tool for rapid trial and testing. ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "Please reach out to us", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": " if you are curious to implement this tool in your workflow and are unfamiliar with the process.)", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "Please reach out to us", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "regtest" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-19" + }, + { + "text": "Using regtest as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-19" + }, + { + "text": "Using regtest as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-19" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-19" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-19" + }, + { + "text": "reindex", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "reindex" + }, + { + "text": "reindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "reindex" + }, + { + "text": " instructs the daemon to re-index the currently synced blockchain data.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "reindex" + }, + { + "text": "Depending on the size and state of the chain you are re-indexing, this\nparameter may prolong the daemon launch time.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "reindex" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-20" + }, + { + "text": "Using reindex as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-20" + }, + { + "text": "rewind", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rewind" + }, + { + "text": "rewind", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rewind" + }, + { + "text": " rewinds the chain to a specific block height. This is useful for creating snapshots at a given block height.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rewind" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-21" + }, + { + "text": "Using rewind as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-21" + }, + { + "text": "rpcallowip", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "rpcallowip", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": " tells the daemon which ip addresses are acceptable for receiving rpc commands.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "By default, only rpc connections from localhost are allowed.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "Specify as many ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "rpcallowip=", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": " settings as you like to allow connections from other hosts, either as a single IPv4/IPv6 or with a subnet specification.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "Opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED. The rpcpassword is transmitted over the network unencrypted. Also note that anyone that can authenticate on the RPC port can steal your keys and take over the server. ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "For more information click here", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "For more information click here", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcallowip" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-22" + }, + { + "text": "Using rpcallowip as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-22" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-22" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-22" + }, + { + "text": "rpcbind", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "rpcbind", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": " instructs the daemon to listen for json-rpc connections.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "[host]:port", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": " notation for IPv6.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "This option can be specified multiple times.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "The default setting is to bind to all interfaces.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcbind" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-23" + }, + { + "text": "Using rpcbind as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-23" + }, + { + "text": "Using rpcbind as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-23" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-23" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-23" + }, + { + "text": "rpcclienttimeout", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcclienttimeout" + }, + { + "text": "rpcclienttimeout", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcclienttimeout" + }, + { + "text": " indicates the number of seconds to wait for an rpc command to complete before killing the process.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcclienttimeout" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-24" + }, + { + "text": "Using rpcclienttimeout as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-24" + }, + { + "text": "Using rpcclienttimeout as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-24" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-24" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-24" + }, + { + "text": "rpcconnect", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": "rpcconnect", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": " allows the user to connect to ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": " and send RPC commands from a host. By default, it is set to localhost.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": "We DO NOT RECOMMEND that the average user set this value to anything other\nthan the localhost, as it can grant access to a foreign party, who are then\nable to take control over komodod and all funds in your wallet.dat file.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcconnect" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-25" + }, + { + "text": "Using rpcconnect as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-25" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-25" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-25" + }, + { + "text": "rpcport", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": " tells the daemon to listen for RPC connections on the indicated TCP port overwriting the default. The default rpcport for the Komodo(KMD) blockchain is 7771. The default rpcport of a Smart Chain is solely dependant on the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": "-ac_", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": "Antara customization parameters", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": " and values used to launch it.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": "Antara customization parameters", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "rpcport" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-26" + }, + { + "text": "Using rpcport as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-26" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-26" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-26" + }, + { + "text": "sendfreetransactions", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "sendfreetransactions" + }, + { + "text": "sendfreetransactions", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "sendfreetransactions" + }, + { + "text": " instructs the daemon to send transactions as zero-fee transactions if possible. The default value is 0.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "sendfreetransactions" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-27" + }, + { + "text": "Using sendfreetransactions as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-27" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-27" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-27" + }, + { + "text": "server", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "server" + }, + { + "text": "server", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "server" + }, + { + "text": " instructs the daemon to accept json-rpc commands. It is enabled by default.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "server" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-28" + }, + { + "text": "Using server as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-28" + }, + { + "text": "Using server as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-28" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-28" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-28" + }, + { + "text": "spentindex", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "spentindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": " instructs a Smart Chain to maintain a full index of all spent transactions (txids).", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "We recommend that the user ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": " before initiating this parameter.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "spentindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": " is enabled by default on any Smart Chain that utilizes Antara.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "reindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": " parameter is not a viable alternative method for re-syncing\nthe blockchain in this circumstance.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "spentindex" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-29" + }, + { + "text": "Using spentindex as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-29" + }, + { + "text": "Using spentindex as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-29" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-29" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-29" + }, + { + "text": "stopat", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "stopat" + }, + { + "text": "stopat", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "stopat" + }, + { + "text": " stops the chain at a specific block height. This is useful for creating snapshots at a given block height.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "stopat" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "Using stopat as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "splitperc", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "splitperc", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": " parameter allows the user to decide what happens to a UTXO that is successfully able to stake a block in the POS64 staking system (i.e. a Smart Chain started using the ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "-ac_staked", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": " Antara customization parameter). This parameter's value defines the percentage of the staking UTXO value to leave in the same address. The rest of of the staking UTXO value is added to the new UTXO created to the coinbase address.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "-ac_staked", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "Examples:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "-splitperc=0", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": " merges the staking UTXO value and the coinbase value to the coinbase address", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "-splitperc=50", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": " takes half of the staking UTXO value and sends it to the coinbase address", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "-splitperc=100", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": " does not change the staking UTXO", + "tagName": "li", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-30" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-31" + }, + { + "text": "Using splitperc as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-31" + }, + { + "text": "testnode", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "testnode" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "testnode" + }, + { + "text": "testnode", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "testnode" + }, + { + "text": " parameter allows the daemon to mine without being connected to any other peers. This is useful for debugging and testing.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "testnode" + }, + { + "text": "If this parameter is not set, the daemon will not attempt to mine blocks unless it has at least one other peer.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "testnode" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-32" + }, + { + "text": "Using testnode as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-32" + }, + { + "text": "Using testnode as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-32" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-32" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-32" + }, + { + "text": "timestampindex", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "timestampindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": " instructs a Smart Chain to maintain a timestamp index for all block hashes.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "We recommend that the user ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": " before initiating this parameter.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "manually delete the blockchain data", + "tagName": "a", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "reindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": " parameter is not a viable alternative method for re-syncing\nthe Smart Chain in this circumstance.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "timestampindex" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-33" + }, + { + "text": "Using timestampindex as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-33" + }, + { + "text": "Using timestampindex as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-33" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-33" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-33" + }, + { + "text": "txindex", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": " instructs a Smart Chain to track every transaction made on the relevant blockchain.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": " is enabled by default on all Smart Chains, and is utilized in delayed Proof of Work (dPoW), privacy modules, and Antara.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": "Disabling ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": "txindex", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": " will cause the default Smart Chain daemon to malfunction.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "txindex" + }, + { + "text": "whitebind", + "tagName": "h2", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": "whitelist", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": " binds the daemon to a given address and whitelists peers connecting to it.", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": "Use ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": "[host]:port", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": " notation for IPv6", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "whitebind" + }, + { + "text": "📌 Examples:", + "tagName": "h4", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-34" + }, + { + "text": "Using whitebind as a runtime parameter:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-34" + }, + { + "text": "Using whitebind as a default value in the Smart Chain's ", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-34" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-34" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/common-runtime-parameters", + "closestElementReference": "examples-34" + } + ], + "smart-chains/setup/dexp2p": [ + { + "text": "Enhanced Peer to Peer data broadcast and synchronisation between Nodes of a Smart Chain", + "tagName": "h1", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "enhanced-peer-to-peer-data-broadcast-and-synchronisation-between-nodes-of-a-smart-chain" + }, + { + "text": "This Peer to Peer Messaging Enhancement technology is in development. The specifics of the implementation are subject to change. This document is a Work In Progress.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "enhanced-peer-to-peer-data-broadcast-and-synchronisation-between-nodes-of-a-smart-chain" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "All the nodes of a Smart Chain started with the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "Optional", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "-dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " (set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "2", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": ") start listening and propagating data packets broadcasted by other nodes on the network. These data packets don't necessarily contain the Smart Chain's transactions, are stored in a node's RAM and dropped after 1 hour.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "Let's call this local data stored as \"Data Mempool\" as opposed to the \"Mempool/Transaction Mempool\" that stores just the unconfirmed transactions of the Smart Chain. The data is transmitted from from one node to another in the form of \"datablobs\". A \"datablob\" contains the timestamp, the data itself (encrypted if a destination pubkey is provided, see: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_broadcast", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "), a nonce, the SHA256 hash of the payload and other metadata.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_broadcast", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "if ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "-dexp2p=1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " is used, the node will participate in the p2p data network but doesn't respond to requests from nSPV superlight clients", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "if ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "-dexp2p=2", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " is used, the node will participate in the p2p data network and also responds to requests from nSPV superlight clients", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "This p2p data transmission and synchronisation layer can be used for any generic data. But, there are certain enhancements made to the RPC that enable the usage of this layer as a Decentralised, Peer to Peer order broadcasting mechanism for the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "Komodo DeFi Framework API", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "Komodo DeFi Framework API", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "installation" + }, + { + "text": "Launch", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "Currently, this technology is being tested on a test chain named ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "DORN", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "Launch Parameters:", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "You might want to add the parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": " with the value as your pubkey for convenient testing of encrypted \"datablobs\" across multiple daemon restarts", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "launch" + }, + { + "text": "Daemon Output", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "After the initial output common to all the daemons is printed, a daemon started with the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "-dexp2p=2", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": " command starts printing statistics about the datablobs it has seen and the state of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": " network from its perspective. Most of the stats from the daemon output can also be accessed through the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": " RPC", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "daemon-output" + }, + { + "text": "Explanation", + "tagName": "h3", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "2040", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " is the time in seconds since the last purge of the datablobs stored in the node's RAM; calculated as ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "unixtimestamp % purgetime", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " ; ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "%", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "modulo", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " and the default purge time is ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "1 hour", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "modulo", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "del.0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " datablobs were purged by the node in the last minute", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "00000000", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " is the checksum of the purged datablobs in the last second (for performance reasons)", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "RAM.207", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means there are currently ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "207", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " datablobs in the node's RAM", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "84b824a6", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " is the checksum of all the datablobs in the RAM", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "R.0 S.621 A.621", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means the node Received ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " messages, Sent ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "621", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " messages, Added ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "621", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " messages; there are no right or wrong ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "R", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "S", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " values; ideally, all the nodes that don't publish/stream should have the same R and S values; but, some nodes may have larger ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "S", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " values than ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "R", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " based on connectivity, network topology and which datablobs its peers already have", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "dup.0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means the node received ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " duplicate datablobs; high amount of duplicates is bad as it wastes bandwidth", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "L.0 A.0 coll.0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " these are some stats for internal tracking/debugging and should not be relevant to a user/developer", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "lag 0.000 (0.0000 0.0000 0.0000)", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " in this string, the number right beside the word ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "lag", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " is the average lag over different windows of datablobs. The numbers in the brackets denote the actual lags in the different windows. The different windows are: ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "fast window", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ", ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "medium window", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ", ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "long window", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " which mean the most recent ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "1000", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ", ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "10000", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ", ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "100000", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " datablobs respectively; there might be huge values of lag recorded within the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "first minute", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " of starting the node as VIP datablobs from other nodes start arriving even though they weren't published recently", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "err.0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " non-VIP datablobs were received with over ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "1 minute", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " lag", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "pend.0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means there are ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " pending datablobs to be received from the network", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "T/F 414/414", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " means ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "414", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " datablobs were purged by the node the the datablobs are first ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "Truncated", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " and then their memory ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "Freed", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "; this number together with the value of ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "RAM", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " (number of datablobs currently in ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "RAM", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ") can be treated as the total number of datablobs processed by the node since its launch", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0 0 0 0 0 0 1 1 6 4 10 31 46 108", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " these numbers are the total number of datablobs in the node's RAM classified by their priority; the rightmost number gives the total number of datablobs with priority ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "0", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": ", the one left to it gives the total number of datablobs with priority ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " and so on.... ; the left most number gives the total number of datablobs with priority greater than ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "13", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "3/sec", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": " is the number of datablobs per second for the last minute", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "explanation" + }, + { + "text": "DEX_anonsend", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_anonsend message priority destpub33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "This method can be used by a user to broadcast any message to the p2p network without revealing either the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "s involved or the contents of the message to the network. The datablob so created will be added to the \"Data Mempools\" of all the nodes with the parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "-dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "2", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": ", but can only be decrypted by the node whose ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " is ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "destpub33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": ". The recipient node can also see the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " of the sender.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "This is achieved by first encrypting the message to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " : ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "destpub33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " and then encrypting it again using a publicly known key pair. This makes it so that, the datablob looks the same regardless who sent it, and only the node with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "destpub33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": " will be able to decrypt it.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "Note that, an attacker with large resources will be able to tell the ip address of the node which published the data packet and if the node publishes other datablobs that reveal its ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": ", thereby linking them. But, it is not possible for the uninvolved to know who the intended recipient is.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-anonsend" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ------------------------------------------------------------ |\n| message | (string) | the message to be sent |\n| priority | (number) | the priority with which the anonymous message has to be sent |\n| destpub33 | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments" + }, + { + "text": " of the recipient node |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| ------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| timestamp | (number) | UNIX timestamp at which the datablob was created |\n| id | (number) | short hash of the datablob; can be treated as a unique id most of the time |\n| hash | (string) | hash of the datablob |\n| tagA | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " of the datablob; is set to the value \"anon\" |\n| tagB | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " of the datablob; is empty for this datablob |\n| pubkey | (string) | the public ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " that was used to authenticate the datablob |\n| payload | (string) | all the data being sent in the datablob; contains the data,tags,volumes etc., |\n| hex | (boolean) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "payload", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " is in hexadecimal format |\n| decrypted | (number) | the decrypted payload; |\n| decryptedhex | (number) | whether the decrypted payload is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "; |\n| senderpub | (string) | the actual ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " of the sender |\n| amountA | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " (volumeA) |\n| amountB | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " (volumeB) |\n| priority | (number) | the priority with which the datablob will be routed by the network |\n| recvtime | (number) | the unix timestamp at which the datablob was first observed by the node |\n| cancelled | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "datablob", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " is set to be purged prematurely; in the context of Komodo DeFi Framework orders, it means the order has been cancelled; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "The receiving node can find all the messages sent to it through the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "DEX_anonsend", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": " method by using the method ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "DEX_list", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": " for listing all the the datablobs with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "\"anon\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "and looking for the matches that have the keys ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "\"anonmsg\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "\"anonsender\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": " in them.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "DEX_anonsend", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-2" + }, + { + "text": "DEX_broadcast", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "DEX_broadcast hex [priority [tagA [tagB [pubkey33 [volA [volB]]]]]]", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "This method can be used to broadcast any data to the p2p network, which will be added to the \"Data Mempools\" of all the nodes with the parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "-dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "2", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-broadcast" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| hex | (string) | the data to be broadcasted; can be in hex format or ASCII; to specify that the string has to be parsed as ASCII, surround it with quotes the size limit of a \"datablob\" is 1MB; the size of the actual data to be broadcasted is recommended to be smaller than 1MB to combat spam, after the size of \"datablob\" crosses 1KB, each time the size doubles, its priority is reduced by 1; this will make generating valid packets for larger data more and more expensive as not only is the difficulty increased by the packetsize, the amount of data to be hashed is increasing too |\n| priority | (string, optional) | the priority with which other nodes will route the data; can be an integer between ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "16", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " increasing the priority of a data broadcast increases the time taken by a CPU to create it; this is achieved by changing a \"nonce\" in the \"datablob\" until the lowest bits of the SHA256 hash match ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "011101110111", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " (", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "0x777", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ") and each of the next \"priority\" number of bits to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " if priority is set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "5", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ", the lowest bits of the hash will be ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "01110111011100000", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " |\n| tagA | (string, optional) | the first tag to be associated with the data; an index associated to a tag is created in the RAM of a node and is used for quick data lookups; limited to 15 characters ;in the context of a Komodo DeFi Framework order, ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is the \"base\" (maker) coin being traded; if all the three values: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " are set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " ie., unspecified, ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " defaults to the value \"general\"; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "\"inbox\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ", then the data is encrypted to the destination pubkey set using the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " parameter ; all the other nodes on the network can propagate the data; but, only the node that owns the destination pubkey is able to decrypt it; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is not set to \"inbox\", the data is encrypted to a publicly known keypair so that the sender pubkey can be authenticated |\n| tagB | (string, optional) | the second tag to be associated with the data; an index associated to a tag is created in the RAM of a node and is used for quick data lookups; limited to 15 characters; in the context of a Komodo DeFi Framework order, ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is the \"rel\" (taker) coin being traded |\n| pubkey33 | (string, optional) | the pubkey which is associated with the datablob, called the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "; this is not a regular pubkey that starts with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "02", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "03", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ", it starts with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "01", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "; it can be found from the output of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " RPC; it is also printed in the STDOUT of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " in a line that starts with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey.(", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "if the node is started with the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " parameter using a regular pubkey owned by the node, its privatekey is used to create the corresponding ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " and printed; else, a keypair is generated for the particular session and its privatekey is used to create the corresponding ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " and printed if the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is set to \"inbox\", the datablob is encrypted to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " specified by the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " parameter; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is not set to \"inbox\", the datablob is authenticated by the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " provided through the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " parameter by encrypting it to a publicly known keypair; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is not set to \"inbox\" and the parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": ", i.e., unspecified, the datablob is not authenticated by any ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " and broadcasted to the network un-encrypted; |\n| volA | (float - 8 decimals, optional) | in the context of a Komodo DeFi Framework order, volume of the coin denoted by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " |\n| volB | (float - 8 decimals, optional) | in the context of a Komodo DeFi Framework order, volume of the coin denoted by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| timestamp | (number) | UNIX timestamp at which the datablob was created |\n| id | (number) | short hash of the datablob; can be treated as a unique id most of the time |\n| hash | (string) | hash of the datablob; the payload is hashed like so: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "sha256(curve25519(sha256(payload)))", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": ", the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "curve25519", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " hash is included to make the process FPGA resistant to deter spammers; there are no known ASICS for it |\n| tagA | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " of the datablob |\n| tagB | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " of the datablob |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " the payload is tagged with; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " is \"inbox\", the payload is encrypted and only the owner of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " can decrypt the datablob |\n| payload | (string) | all the data being sent in the datablob; contains the data,tags,volumes etc., |\n| hex | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "payload", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " |\n| decrypted | (number) | the decrypted payload; |\n| decryptedhex | (number) | whether the decrypted payload is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "; |\n| error | (string) | errors if any |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " of the sender |\n| amountA | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " (volumeA) |\n| amountB | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " (volumeB) |\n| priority | (number) | the priority with which the datablob will be routed by the network |\n| recvtime | (number) | the unix timestamp at which the datablob was first observed by the node |\n| cancelled | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "datablob", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " is set to be purged prematurely; in the context of Komodo DeFi Framework orders, it means the order has been cancelled; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-2" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-3" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-3" + }, + { + "text": "DEX_cancel", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-cancel" + }, + { + "text": "DEX_cancel id [pubkey33 [tagA tagB]]", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-cancel" + }, + { + "text": "This method can be used to cancel an order issued by the user's node. A node can cancel only the orders that were broadcasted using its current ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-cancel" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-cancel" + }, + { + "text": ". Orders that are broadcasted without being authenticated by a pubkey can not be canceled.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-cancel" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | -------------------------------------------------------------------------- |\n| id | (number, optional) | short hash of the datablob; can be treated as a unique id most of the time |\n| pubkey33 | (string, optional) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": " the payload is tagged with |\n| tagA | (string, optional) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": " of the datablob |\n| tagB | (string, optional) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": " of the datablob |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| timestamp | (number) | UNIX timestamp at which the datablob was created |\n| id | (number) | short hash of the datablob; can be treated as a unique id most of the time |\n| hash | (string) | hash of the datablob |\n| tagA | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " of the datablob; it's value is ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "\"cancel\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " and it lets other nodes on the network |\n| tagB | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " of the datablob |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " the payload is tagged with; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " is \"inbox\", the payload is encrypted and only the owner of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " can decrypt the datablob |\n| payload | (string) | all the data being sent in the datablob; contains the data,tags,volumes etc., |\n| hex | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "payload", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " |\n| decrypted | (number) | the decrypted payload; when the byte order is reversed and converted to decimal, gives the id to be cancelled |\n| decryptedhex | (number) | whether the decrypted payload is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "; |\n| error | (string) | errors if any |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " of the sender |\n| amountA | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " (volumeA) |\n| amountB | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " (volumeB) |\n| priority | (number) | the priority with which the datablob will be routed by the network |\n| recvtime | (number) | the unix timestamp at which the datablob was first observed by the node |\n| cancelled | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "datablob", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " is set to be purged prematurely; in the context of Komodo DeFi Framework orders, it means the order has been cancelled; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-3" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-4" + }, + { + "text": "Command (Using the id)", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-id" + }, + { + "text": "Cancel an order by its \"id\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-id" + }, + { + "text": "Command (Using the pubkey)", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-pubkey" + }, + { + "text": "Cancel all orders tagged with a \"pubkey\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-pubkey" + }, + { + "text": "Command (Using the tags tagA and tagB)", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-tags-tag-a-and-tag-b" + }, + { + "text": "Cancel all orders published for a specific ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-tags-tag-a-and-tag-b" + }, + { + "text": "base/rel", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-tags-tag-a-and-tag-b" + }, + { + "text": " pair", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-using-the-tags-tag-a-and-tag-b" + }, + { + "text": "DEX_get", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-get" + }, + { + "text": "DEX_get id", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-get" + }, + { + "text": "This method returns an order's data by its id.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-get" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | ----------------------- |\n| id | (number) | short hash of the order |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| timestamp | (number) | UNIX timestamp at which the datablob was created |\n| id | (number) | short hash of the datablob; can be treated as a unique id most of the time |\n| hash | (string) | hash of the datablob |\n| tagA | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " of the datablob |\n| tagB | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " of the datablob |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " the payload is tagged with; if ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " is \"inbox\", the payload is encrypted and only the owner of the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " can decrypt the datablob |\n| payload | (string) | all the data being sent in the datablob; contains the data,tags,volumes etc., |\n| hex | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "payload", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " |\n| decrypted | (number) | the decrypted payload; |\n| decryptedhex | (number) | whether the decrypted payload is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "; |\n| error | (string) | errors if any |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " of the sender |\n| amountA | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " (volumeA) |\n| amountB | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " (volumeB) |\n| priority | (number) | the priority with which the datablob will be routed by the network |\n| recvtime | (number) | the unix timestamp at which the datablob was first observed by the node |\n| cancelled | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "datablob", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " is set to be purged prematurely; in the context of Komodo DeFi Framework orders, it means the order has been cancelled; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-4" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-5" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-4" + }, + { + "text": "DEX_list", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": "DEX_list stopat minpriority tagA tagB pubkey33 [minA maxA minB maxB [stophash]]", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": "This method can be used to filter and list data from the \"Data Mempool\" of the node. Each specified filter narrows the list down to the datablobs that match it exactly. If a filter is specified as ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": ", it matches all the values a datablob might have for the filter.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-list" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| stopat | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " of the datablob until which the filtered list is to be displayed, excluding the datablob with the given ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " |\n| minpriority | (string) | the minimum priority of the datablobs to be filtered |\n| tagA | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " by which the available datablobs are filtered; if all the three values: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " are set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " ie., unspecified, ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " defaults to the tag \"general\" |\n| tagB | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " by which the available datablobs are filtered |\n| pubkey33 | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "destination publickey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " to filter the available datablobs |\n| minA | (float - 8 decimals, optional) | the minimum value of the amount associated to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " to filter the available datablobs |\n| maxA | (float - 8 decimals, optional) | the maximum value of the amount associated to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " to filter the available datablobs |\n| minB | (float - 8 decimals, optional) | the minimum value of the amount associated to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " to filter the available datablobs |\n| maxB | (float - 8 decimals, optional) | the maximum value of the amount associated to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " to filter the available datablobs |\n| stophash | (string, optional) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " of the datablob until which the filtered list is to be displayed excluding the datablob with the given ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "; taken into account only when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stopat", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " is set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " or ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "How to use the DEX_list RPC periodically to filter the datablobs received by the node and get each datablob exactly once?", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "call ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " with both ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stopat", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stophash", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "\"\"", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and the rest of the filters as necessary", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "the response will contain all the available datablobs sorted in the order: \"latest\" to \"oldest\"", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "let the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " of the latest datablob(first one in the list) be ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and its ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " be ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "if we call ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " again with ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stopat", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stophash", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "\"\"", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " (rest of the filters are the same), the response will contain all the newer datablobs till the datablob that has the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " equal to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "id_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " (excluding it)", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "alternatively, if we call ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " with stopat set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "\"\"", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "stophash", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " (rest of the filters are the same), the response will contain all the newer datablobs till the datablob that has the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "hash_1", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": " (excluding it)", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| ------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| matches | (array of json) | an array containing json representations of the matched datablobs |\n| timestamp | (number) | UNIX timestamp at which the datablob was created |\n| id | (number) | short hash of the datablob; can be treated as a unique id most of the time |\n| hash | (string) | hash of the datablob |\n| tagA | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " of the datablob |\n| tagB | (string) | ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " of the datablob |\n| destpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "destpubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " to which the payload is encrypted to |\n| payload | (string) | all the data being sent in the datablob; contains the data,tags,volumes etc., |\n| hex | (boolean) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "payload", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " is in hexadecimal format |\n| decrypted | (number) | the decrypted payload; |\n| decryptedhex | (number) | whether the decrypted payload is in hexadecimal format; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "; |\n| anonmsg | (string) | the decrypted anonymous message received by the node from a ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "anonsender", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " who most likely used the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "DEX_anonsend", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " method |\n| anonsender | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " of the anon message sender |\n| error | (string) | errors if any; the error says ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "\"wrong sender\"", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " if the actual ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " of the sender is different from the claimed one |\n| senderpub | (string) | the actual ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " of the sender |\n| amountA | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " (volumeA) |\n| amountB | (string) | amount associated with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " (volumeB) |\n| priority | (number) | the priority with which the datablob will be routed by the network |\n| recvtime | (number) | the unix timestamp at which the datablob was first observed by the node |\n| cancelled | (number) | whether the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "datablob", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " is set to be purged prematurely; in the context of Komodo DeFi Framework orders, it means the order has been cancelled; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "false", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " when ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "true", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " |\n| tagA | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " used to filter |\n| tagB | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " used to filter |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": " used to filter |\n| n | (integer) | number of matches |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": "DEX_anonsend", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-5" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-6" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-5" + }, + { + "text": "DEX_orderbook", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-orderbook" + }, + { + "text": "DEX_orderbook maxentries minpriority tagA tagB pubkey33 [minA maxA minB maxB]", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-orderbook" + }, + { + "text": "This method interprets the datablobs as orders for Komodo DeFi Framework and displays relevant data for each order that matches the filters applied through the parameters.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-orderbook" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ----------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------- |\n| maxentries | (string) | the maximum number of orders to list |\n| minpriority | (string) | the minimum priority of the orders to be listed |\n| tagA | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " by which the available orders are filtered; this tag is treated as the \"base\" coin's name |\n| tagB | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " by which the available orders are filtered ; this tag is treated as the \"rel\" coin's name |\n| pubkey33 | (string) | the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "public key", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " to filter the available orders |\n| minA | (float - 8 decimals, optional) | the minimum volume of the coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " to filter the available orders |\n| maxA | (float - 8 decimals, optional) | the maximum volume of the coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " to filter the available orders |\n| minB | (float - 8 decimals, optional) | the minimum volume of the coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " to filter the available orders |\n| maxB | (float - 8 decimals, optional) | the maximum volume of the coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": " to filter the available orders |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------------- | ------------------------------------------------------------------------------------- |\n| asks | (array of json) | all the asks for the base coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " w.r.t to the rel coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " |\n| price | (string) | the price offered; calculated as ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountB/amountA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| baseamount | (string) | the volume of the base coin offered; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| relamount | (string) | the volume of the base coin offered; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| priority | (number) | the priority of the order |\n| pubkey | (string) | the pubkey associated with the order |\n| timestamp | (number) | the timestamp of the order |\n| hash | (number) | the hash of the order |\n| id | (number) | the short hash of the order ; can be treated as an unique id |\n| bids | (array of json) | all the bids for the base coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " w.r.t to the rel coin named by ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " |\n| price | (number) | the price offered; calculated as ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountB/amountA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| baseamount | (number) | the volume of the base coin offered; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| relamount | (number) | the volume of the base coin offered; ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": "amountA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": " of the datablob |\n| priority | (number) | the priority of the order |\n| pubkey | (number) | the pubkey associated with the order |\n| timestamp | (number) | the timestamp of the order |\n| hash | (number) | the hash of the order |\n| id | (number) | the short hash of the order; can be treated as an unique id |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-6" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-7" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-6" + }, + { + "text": "DEX_publish", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_publish filename priority sliceid", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "This method allows a user to publish a file to the p2p Data Network. The file is broken into fragments and broadcast to the network using the datablobs. Take a look at the response of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_broadcast", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " for a list of all the keys available in a datablob.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_broadcast", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "we recommend to publishing only one file at a time", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "we recommend to publishing only one file at a time", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "there is a detailed explanation on how publishing and subscribing works ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "here", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "there is a detailed explanation on how publishing and subscribing works ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "here", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "it is also recommended to not issue the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "stop", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " command to the daemon while a file is being published; doing so will make the daemon stop receiving further RPC, but it continues to publish the datablobs containing the data of the file; once that is done, the daemon shuts down; note that, the daemon publishes neither the datablob with ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "tagA", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "files", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "tagB", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " set to the file name nor the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "locators", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " datblob, which results in no other node able to use the ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_subscribe", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " RPC to construct the file", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "it is also recommended to not issue the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "stop", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " command to the daemon while a file is being published; doing so will make the daemon stop receiving further RPC, but it continues to publish the datablobs containing the data of the file; once that is done, the daemon shuts down; note that, the daemon publishes neither the datablob with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "files", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " set to the file name nor the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " datblob, which results in no other node able to use the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_subscribe", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": " RPC to construct the file", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "DEX_subscribe", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-publish" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| filename | (string) | the name of the file to be published; the name must be less than 15 characters long; the file must be present in the working directory from which the command to start the Komodo daemon(", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": ") was issued; not to be confused with the directory in which ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " is present; if the file is not found in the working directory, it is then searched in the user's ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "~/dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " directory and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "/usr/local/dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " directory in Linux/MacOS and in ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "%APPDATA%\\dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " in Windows |\n| priority | (number) | the minimum priority to be used for the broadcasted datablobs that contain the file's data; set this value above the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " level for prioritised transmission of the datablobs; for the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " being used by your node, see the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "vip", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " in the response to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " RPC |\n| sliceid | (number) | if set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": ", it publishes the file; if set to ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " and the file is already published, it scans the datablobs present in the \"Data mempool\" and republishes the missing ones; if the value is an integer greater than ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": ", it is the id of the slice to publish; this method treats the file as a number of 1 MB sized slices and publishs only the mentioned slice of the file; this functionality is used by the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "DEX_stream", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": " method |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "DEX_stream", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------ |\n| fname | (string) | the name of the file |\n| id | (number) | the id of the published file's locators datablob |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": " of the file's sender |\n| filesize | (number) | the size of the file in bytes |\n| fragments | (number) | the number of fragments the file has been broken down into; each fragment has a maximum size of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": "10000 byte", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": " |\n| numlocators | (number) | the number of locators of the published file |\n| filehash | (string) | the SHA256 hash of the file as indicated by the publishing node |\n| checkhash | (string) | the SHA256 hash of the file based on all the fragments the node has currently available |\n| result | (string) | whether the command was successfully executed |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-7" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-8" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-7" + }, + { + "text": "DEX_setpubkey", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "DEX_setpubkey pubkey33", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "This method allows a user set the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": " used by the node. Can only be used once per daemon start. It can't be used to change the pubkey that has already been set using the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "-pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "If this method is used with a pubkey not owned by the node, the datablobs created/broadcast by this node can't be authenticated by the other nodes and can cause unpredictable behavior.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-setpubkey" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ------------------------------------------------------------------------------------------------------------------- |\n| pubkey33 | (string) | a regular pubkey to be used to create the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-8" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-8" + }, + { + "text": "; recommended to use a pubkey of an address owned by the node |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successfully executed |\n| publishable_pubkey | (string) | the pubkey to be shared with another user for receiving encrypted data packets |\n| secpkey | (string) | the regular pubkey to be shared with another user for receiving encrypted data packets |\n| recvaddr | (string) | the regular public address associated with the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "secpkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "; this will be the R-address used for a ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "subatomic swap", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " |\n| recvZaddr | (string) | the value of the launch parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "-recvZaddr", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " used when launching the node; it is the z-address of Pirate in the context of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "subatomic swaps", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " |\n| handle | (string) | the value of the launch parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "-handle", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " used when launching the node; it is the \"username\" associated with the node in the context of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "subatomic swaps", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " |\n| txpowbits | (number) | the default number bits being used for txpow; the higher this value, the more resource intensive it is to send spam transactions |\n| vip | (number) | the minimum number of txpow bits to be present in a datablob for it to be considered a VIP; VIP datablobs are prioritised for routing by all nodes on the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " network; if a node notices its peer not having a VIP datablob it knows about, it will ping the peer about it even if the VIP datablob was received by it a long time before then; this property is useful for helping newer nodes bootstrap important datablobls in saturated networks |\n| cmdpriority | (number) | the number of txpow bits being used for datablobs generated by commands; Example: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "DEX_cancel", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": " |\n| perfstats | (string) | a string containing stats about the datablobs and the \"Data mempool\" the local node is seeing |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": "DEX_cancel", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-8" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-9" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-8" + }, + { + "text": "DEX_stats", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stats" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stats" + }, + { + "text": "This method gives info and stats related to the p2p data layer.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stats" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successfully executed |\n| publishable_pubkey | (string) | the pubkey to be shared with another user for receiving encrypted data packets |\n| secpkey | (string) | the regular pubkey to be shared with another user for receiving encrypted data packets |\n| recvaddr | (string) | the regular public address associated with the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "secpkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "; this will be the R-address used for a ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "subatomic swap", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " |\n| recvZaddr | (string) | the value of the launch parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "-recvZaddr", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " used when launching the node; it is the z-address of Pirate in the context of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "subatomic swaps", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " |\n| handle | (string) | the value of the launch parameter ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "-handle", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " used when launching the node; it is the \"username\" associated with the node in the context of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "subatomic swaps", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " |\n| txpowbits | (number) | the default number bits being used for txpow; the higher this value, the more resource intensive it is to send spam transactions |\n| progress | (number) | the percentage of datablobs already broadcast when a single file is being published using the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " RPC |\n| vip | (number) | the minimum number of txpow bits to be present in a datablob for it to be considered a VIP; VIP datablobs are prioritised for routing by all nodes on the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " network; if a node notices its peer not having a VIP datablob it knows about, it will ping the peer about it even if the VIP datablob was received by it a long time before then; this property is useful for helping newer nodes bootstrap important datablobls in saturated networks |\n| cmdpriority | (number) | the number of txpow bits being used for datablobs generated by commands; Example: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "DEX_cancel", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " |\n| perfstats | (string) | a string containing stats about the datablobs and the \"Data mempool\" the local node is seeing; Example: ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "RAM.207 50c5ce3d R.0 S.414 A.414 dup.0 \\| L.0 A.0 coll.0 \\| lag (0.0000 0.0000 0.0000) err.0 pend.0 T/F 207/207 \\| 0 0 0 0 0 1 0 1 3 4 5 32 62 99 0/sec", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "; for explanation on what each part of the string means, see the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "Daemon Output", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": " section |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "DEX_cancel", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": "Daemon Output", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-9" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-10" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-9" + }, + { + "text": "DEX_stream", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_stream filename priority", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "This method allows a user to stream a file to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEXP2P", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " Network of the Smart Chain. It is different from ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " in that, ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_stream", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " can help stream a file while it is increasing in size. When the command is issued, it checks the file's size and if it is more than 1 MB and the first slice hasn't been published yet, the command publishes a slice of size 1 MB using ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " internally. The command must be issued each time a new slice has to be published. If the command was issued when the size was less than 1 MB or if there is no new slice to publish, then it does nothing and informs the user about the reason.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "When the command was issued, if the size was ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "0.86 MB", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": ", it will returns warning.", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "When the command was issued, if the size was ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "4.42 MB", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "4", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " slices were already published by previous issuances of the command, it returns a warning.", + "tagName": "li", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "To continuously stream, it is recommended to repeatedly issue the command with a small ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "sleep/wait", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": " between each issuance.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "A detailed explanation on how the command works and its usage can be found ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "in this linked tutorial", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "in this linked tutorial", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-stream" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| filename | (string) | the name of the file to be streamed; the name must be less than 15 characters long; the file must be present in the working directory from which the command to start the Komodo daemon(", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": ") was issued; not to be confused with the directory in which ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": " is present |\n| priority | (number) | the minimum priority to be used for the broadcasted datablobs that contain the file's data; set this value above the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": " level for prioritised transmission of the datablobs; for the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": " being used by your node, see the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "vip", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": " in the response to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": " RPC |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-10" + }, + { + "text": "Response (when publish suceeds)", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| fname | (string) | the name of the file being published; here, the file referred to is the slice being published, not the actual file; the number appended after the actual file's name is a count of the number of bytes of the actual file that exist before this slice |\n| id | (number) | the id of the published file's locators datablob |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": " of the file's sender |\n| filesize | (number) | the size of the file in bytes |\n| fragments | (number) | the number of fragments the file has been broken down into; each fragment has a maximum size of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": "10000 bytes", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": " |\n| numlocators | (number) | the number of locators of the published file |\n| filehash | (string) | the SHA256 hash of the file as indicated by the publishing node |\n| checkhash | (string) | the SHA256 hash of the file based on all the fragments the node has currently available |\n| result | (string) | whether the command was successfully executed |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-publish-suceeds" + }, + { + "text": "Response (when there is some type of error)", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-there-is-some-type-of-error" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | --------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successfully executed |\n| warning | (string) | information about the error faced |\n| filename | (string) | the name of the file being streamed; here, the file referred to is the actual file being streamed |\n| filesize | (number) | the current size of the file in bytes |\n| offset0 | (number) | the total number bytes of the actual file that have already been published using slices |\n| available | (number) | the total number bytes of the actual file that are available to be published after the last publish |\n| needed | (number) | the total number bytes of the actual file that are needed for publishing the next slice |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-when-there-is-some-type-of-error" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-11" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-10" + }, + { + "text": "Response when the file size was less than 1 MB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-10" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-11" + }, + { + "text": "Response when the above command was issued the first time after the file size increased to more than 1 MB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-11" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-12" + }, + { + "text": "Response when the above command was issued the second time after the file size increased to more than 1 MB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-12" + }, + { + "text": "DEX_streamsub", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "DEX_streamsub filename priority pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "This method allows a user to assemble a file being streamed to the DEXP2P network using the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "DEX_stream", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": " command. When this command is issued for the first time, it downloads the first slice if available. On further issuance, it downloads the next slice each time and appends the downloaded slice to the file assembled till then.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "DEX_stream", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "To continuously build the file as more slices are available in the \"data Mempool\", it is recommended to repeatedly issue the command with a small ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "sleep/wait", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": " between each issuance.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "A detailed explanation on how the command works and its usage can be found ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "in this linked tutorial", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "in this linked tutorial", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-streamsub" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| filename | (string) | the name of the file to be assembled; the name must be less than 15 characters long; the file must be created in the working directory from which the command to start the Komodo daemon(", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": ") was issued; not to be confused with the directory in which ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " is present |\n| priority | (number) | the minimum priority to be used for the broadcasted datablobs that contain the file's data; set this value above the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " level for prioritised transmission of the datablobs; for the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "VIP_PRIORITY", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " being used by your node, see the value of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "vip", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " in the response to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "DEX_stats", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " RPC |\n| pubkey | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": " of the node that is streaming the file |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| fname | (string) | the name of the file being downloaded; here, the file referred to is the slice being published, not the actual file; the number appended after the actual file's name is a count of the number of bytes of the actual file that exist before this slice |\n| id | (number) | the id of the file's locators datablob |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": " of the file's sender |\n| filesize | (number) | the size of the file in bytes |\n| fragments | (number) | the number of fragments the file has been broken down into; each fragment has a maximum size of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": "10000 bytes", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": " |\n| numlocators | (number) | the number of locators of the published file |\n| filehash | (string) | the SHA256 hash of the file as indicated by the publishing node |\n| checkhash | (string) | the SHA256 hash of the file based on all the fragments the node has currently available |\n| result | (string) | whether the command was successfully executed |\n| warning | (string) | warnings/errors if any |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-10" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-12" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-13" + }, + { + "text": "Response when the command downloaded the 6th slice", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-13" + }, + { + "text": "DEX_subscribe", + "tagName": "h2", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "DEX_subscribe filename priority id [publisher33]", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "This method allows a user to construct a file from the datablobs available in its RAM. The file must have been published to the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "dexp2p", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": " network using the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": " method by another node.", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "There is a detailed explanation on how publishing and subscribing works\n", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "here", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "dex-subscribe" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| filename | (string) | the name of the file to download |\n| priority | (number) | the priority above the default value of the command priority with which the node should create a datablob if it needs to request missing blocks; can be ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " most of the time |\n| id | (string, deprecated) | DEPRECATED; use the value ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " in its place; PREVIOUSLY: id of the datablob that contains the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " information for the file the user wants to download; find the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " datablob by filtering the avaialble datablobs with ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " set to the file's name and ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " set to the word ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " |\n| publisher33 | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": " of the file's publisher |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| ----------- | -------- | ------------------------------------------------------------------------------------------------------------ |\n| fname | (string) | the name of the file |\n| id | (number) | the id of the published file's locators datablob |\n| senderpub | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": " of the file's sender |\n| filesize | (number) | the size of the file in bytes |\n| fragments | (number) | the number of fragments the file has been broken down into; each fragment has a maximum size of ", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": "10000 byte", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": " |\n| numlocators | (number) | the number of locators of the published file |\n| filehash | (string) | the SHA256 hash of the file as indicated by the publishing node |\n| checkhash | (string) | the SHA256 hash of the file based on all the fragments the node has currently available |\n| result | (string) | whether the command was successfully executed |", + "tagName": "p", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "response-11" + }, + { + "text": ":pushpin: Examples", + "tagName": "h4", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "pushpin-examples-13" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/dexp2p", + "closestElementReference": "command-14" + } + ], + "smart-chains/setup/ecosystem-launch-parameters": [ + { + "text": "Ecosystem Launch Parameters", + "tagName": "h1", + "path": "smart-chains/setup/ecosystem-launch-parameters", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "A list of launch parameters for all the Smart Chains in the Komodo ecosystem that receive the dPoW security service can be found at this link: ", + "tagName": "p", + "path": "smart-chains/setup/ecosystem-launch-parameters", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/blob/master/iguana/assetchains.old", + "tagName": "p", + "path": "smart-chains/setup/ecosystem-launch-parameters", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "https://github.com/KomodoPlatform/dPoW/blob/master/iguana/assetchains.old", + "tagName": "a", + "path": "smart-chains/setup/ecosystem-launch-parameters", + "closestElementReference": "ecosystem-launch-parameters" + } + ], + "smart-chains/setup": [ + { + "text": "Smart Chain Setup", + "tagName": "h1", + "path": "smart-chains/setup", + "closestElementReference": "smart-chain-setup" + }, + { + "text": "This section of the documentation contains information required to Setup and Manage Komodo Smart Chains", + "tagName": "p", + "path": "smart-chains/setup", + "closestElementReference": "smart-chain-setup" + } + ], + "smart-chains/setup/installing-from-source": [ + { + "text": "Installing Smart Chain Software From Source Code", + "tagName": "h1", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "installing-smart-chain-software-from-source-code" + }, + { + "text": "The basic Komodo software package includes two applications.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "installing-smart-chain-software-from-source-code" + }, + { + "text": "komodod", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodod" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodod" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodod" + }, + { + "text": " software application is the Smart Chain daemon that powers all Komodo blockchains.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodod" + }, + { + "text": "komodo-cli", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": " software application allows a developer to execute API calls to ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": " via the command line.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "komodo-cli" + }, + { + "text": "Both are Installed Automatically", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "both-are-installed-automatically" + }, + { + "text": "Both of these software applications are installed in the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "both-are-installed-automatically" + }, + { + "text": "~/komodo/src/", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "both-are-installed-automatically" + }, + { + "text": " directory as a part of any of the following installation procedures.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "both-are-installed-automatically" + }, + { + "text": "The Two Methods to Install Smart Chain Software", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "the-two-methods-to-install-smart-chain-software" + }, + { + "text": "There are two methods available to install Smart Chain software.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "the-two-methods-to-install-smart-chain-software" + }, + { + "text": "Pre-compiled Binaries", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "pre-compiled-binaries" + }, + { + "text": "You can download and unzip our pre-compiled binaries. This is the simplest method and requires no installation procedure.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "pre-compiled-binaries" + }, + { + "text": "For more information on this method, please see the link below.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "pre-compiled-binaries" + }, + { + "text": "Link to simple installations section for pre-compiled executables", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "pre-compiled-binaries" + }, + { + "text": "Link to simple installations section for pre-compiled executables", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "pre-compiled-binaries" + }, + { + "text": "Building Smart Chain Software From Source", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "You may also build Smart Chain software from source.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "This is not required, but building from source is considered the best practice in a production environment, as this allows you to instantly update to the latest patches and upgrades.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "Linux", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "Linux", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "MacOS", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "MacOS", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "Windows", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "Windows", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "building-smart-chain-software-from-source" + }, + { + "text": "Linux", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "linux" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Linux (easiest with a Debian-based distribution, such as Ubuntu)", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "For Ubuntu, we recommend using only the 16.04 or 18.04 releases", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Linux (easiest with a Debian-based distribution, such as Ubuntu)", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "For Ubuntu, we recommend using only the 16.04 or 18.04 releases", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "64-bit Processor", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "64-bit Processor", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 32GB HDD or SDD storage space", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 32GB HDD or SDD storage space", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 4GB of free RAM (8GB+ recommended)", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Minimum 4GB of free RAM (8GB+ recommended)", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements" + }, + { + "text": "Get Started", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "get-started" + }, + { + "text": "Verify that your system is up to date.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "get-started" + }, + { + "text": "Install the dependency packages", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "This action takes some time, depending on your Internet connection. Let the process run in the background.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "Once completed, follow the steps below to install Komodo.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "At some point during the installation process, you may see a warning, \"libgmp\nheaders missing\". This can safely be ignored.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-the-dependency-packages" + }, + { + "text": "Clone the Komodo Repository", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "clone-the-komodo-repository" + }, + { + "text": "Fetch the Zcash Parameters", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "fetch-the-zcash-parameters" + }, + { + "text": "Build the Komodo Daemon", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "In the command below, the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "-j$(nproc)", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " parameter instructs the script to utilize all available processors in your hardware.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "Alternatively, you may instruct the script to use only a set number of processors. For example, ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "-j8", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " instructs the script to use ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "8", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " processors, ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "-j4", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " instructs the script to use ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "4", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": " processors, etc.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "This script can take some time.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon" + }, + { + "text": "Create the komodo.conf File", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "With the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " file open in the Nano text editor, add the following lines.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "(Create your own ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " username and ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " password.)", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "Press ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "CTRL+O", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " to save the changes.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "Press ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "CTRL+X", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " to exit the Nano editor.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "Start the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " daemon. It will automatically begin syncing with the network.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "&", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": " parameter in the last instruction above instructs the terminal to continue allowing you to enter commands within this terminal shell.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-conf-file" + }, + { + "text": "(Optional) Tail the komodod Daemon", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": "Enter the following command to \"tail\" the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": " daemon. The ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": "tail", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": " command allows you to view the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": "debug.log", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": " file updates in real time.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "optional-tail-the-komodod-daemon" + }, + { + "text": "Test Your Daemon with komodo-cli", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "Ensure that your current working directory is in the default ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "src", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " directory.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "You may now use the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " software to send API (RPC) calls to the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " daemon.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "For example:", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "This command returns the latest state information about the KMD blockchain and your ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "When the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "longestchain", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": " values are equal to each other, your machine is in sync with the network.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "test-your-daemon-with-komodo-cli" + }, + { + "text": "Backup your wallet", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "We can not stress enough the importance of backing up your ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "On Linux, the file is located here: ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "~/.komodo/wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "One method to backup this file is to archive a copy of the file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet" + }, + { + "text": "MacOS", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "Requirements", + "tagName": "h3", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements-2" + }, + { + "text": "OSX (version > 10.11)", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements-2" + }, + { + "text": "Minimum 4GB of free RAM (8GB+ recommended)", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "requirements-2" + }, + { + "text": "Ensure Command Line Tools are Installed.", + "tagName": "h5", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-command-line-tools-are-installed" + }, + { + "text": "Issue the following command in a terminal.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-command-line-tools-are-installed" + }, + { + "text": "Ensure brew is Installed", + "tagName": "h5", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": "We use the software ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": "brew", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": " to install dependencies. If you have the latest version of ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": "brew", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": " installed already, you may skip this step.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "ensure-brew-is-installed" + }, + { + "text": "Use brew to Install Dependencies", + "tagName": "h5", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "use-brew-to-install-dependencies" + }, + { + "text": "Execute each command separately", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "use-brew-to-install-dependencies" + }, + { + "text": "Clone the Komodo repository", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "clone-the-komodo-repository-2" + }, + { + "text": "Fetch the Zcash Parameters:", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "fetch-the-zcash-parameters-2" + }, + { + "text": "Compile Komodo", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "compile-komodo" + }, + { + "text": "This can take some time.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "compile-komodo" + }, + { + "text": "While this process proceeds, open a new terminal for the next step.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "compile-komodo" + }, + { + "text": "Create Configuration File", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-configuration-file" + }, + { + "text": "Create the configuration file in the following directory:", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-configuration-file" + }, + { + "text": "If the directory does not yet exist, create the directory.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-configuration-file" + }, + { + "text": "Create the configuration file by entering the following commands in the terminal. Execute each line separately.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-configuration-file" + }, + { + "text": "Run Komodo", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "run-komodo" + }, + { + "text": "Once all processes are complete, run the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "run-komodo" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "run-komodo" + }, + { + "text": " daemon.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "run-komodo" + }, + { + "text": "Track the Syncing Progress", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "track-the-syncing-progress" + }, + { + "text": "Using the tail Command", + "tagName": "h5", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-the-tail-command" + }, + { + "text": "Using komodo-cli and getinfo", + "tagName": "h5", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": "When the returned properties of ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": "longestchain", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": " are equal to each other, the daemon is finished syncing with the network.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "using-komodo-cli-and-getinfo" + }, + { + "text": "Backup Your Wallet", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "We can not stress enough the importance of backing up your ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "On MacOS, the file is located here: ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "~/Library/Application\\ Support/Komodo/wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "One method to backup this file is to archive a copy of the file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-2" + }, + { + "text": "Windows", + "tagName": "h2", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "The Windows software for ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": " files are slightly different than their MacOS and Linux counterparts in two ways.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "The Windows software cannot be directly compiled on a Windows machine. Rather, the software must be compiled on a Linux machine (Ubuntu recommended), and then transferred to the Windows machine", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "You can use a Virtual Machine-based installation of Ubuntu Linux, running on a Windows machine, as a solution", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "You can use a Virtual Machine-based installation of Ubuntu Linux, running on a Windows machine, as a solution", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "The names of the software are ", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "komodod.exe", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "komodo-cli.exe", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "Once you have access to an Ubuntu machine and have access to a terminal ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "with ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "sudo", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": " privileges", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": ", you are prepared to continue the installation process.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "with ", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "sudo", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": " privileges", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "windows" + }, + { + "text": "Install dependencies", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-dependencies" + }, + { + "text": "Install Rust", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "install-rust" + }, + { + "text": "Configure the compiler to use POSIX thread model", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "configure-the-compiler-to-use-posix-thread-model" + }, + { + "text": "Execute:", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "configure-the-compiler-to-use-posix-thread-model" + }, + { + "text": "After executing the above command, select the POSIX option.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "configure-the-compiler-to-use-posix-thread-model" + }, + { + "text": "Execute:", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "configure-the-compiler-to-use-posix-thread-model" + }, + { + "text": "After executing the above command, select the POSIX option.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "configure-the-compiler-to-use-posix-thread-model" + }, + { + "text": "Clone the Komodo Repository", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "clone-the-komodo-repository-3" + }, + { + "text": "Fetch the Zcash Parameters", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "fetch-the-zcash-parameters-3" + }, + { + "text": "Build the Komodo Daemon", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "In the command below, you may instruct the script to use only a set number of processors. For example, ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "-j8", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " instructs the script to use ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "8", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " processors, ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "-j4", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " instructs the script to use ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "4", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " processors, etc.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "This script can take some time. Once completed, you will find ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "komodod.exe", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " & ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "komodo-cli.exe", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " files inside the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "src", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " directory.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "Transfer these 2 executable files to your Windows computer and place the files in a new folder on the Desktop called kmd or any other location you prefer (remember the location and use that). For this guide we are using ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "kmd", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": " directory on Desktop.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "Open a command prompt for the following steps.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "build-the-komodo-daemon-2" + }, + { + "text": "Create the Komodo Directory", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-komodo-directory" + }, + { + "text": "Create the Configuration File", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "When the software dialogue box opens, click ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "Yes", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": " to create the ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "komodo.conf", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "Copy the information below and paste it into Notepad.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "After pasting, save and exit Notepad.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-configuration-file" + }, + { + "text": "Create the Directory for the Zcash Parameters", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "Download following files and move them into the new directory.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-proving.key", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-verifying.key", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-proving.key", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-verifying.key", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sapling-spend.params", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sapling-spend.params", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sapling-output.params", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sapling-output.params", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-groth16.params", + "tagName": "li", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "sprout-groth16.params", + "tagName": "a", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "create-the-directory-for-the-zcash-parameters" + }, + { + "text": "Run Smart Chain Software", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "run-smart-chain-software" + }, + { + "text": "Verify Syncing Progress", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "verify-syncing-progress" + }, + { + "text": "Backup Your Wallet", + "tagName": "h4", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": "We can not stress enough the importance of backing up your ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": "On Windows, the file is located here: ", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": "%HOMEPATH%\\AppData\\Roaming\\Komodo\\wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + }, + { + "text": "One method to backup this file is to create a copy and archive it.", + "tagName": "p", + "path": "smart-chains/setup/installing-from-source", + "closestElementReference": "backup-your-wallet-3" + } + ], + "smart-chains/setup/interacting-with-smart-chains": [ + { + "text": "Interacting with Komodo Chains", + "tagName": "h1", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "interacting-with-komodo-chains" + }, + { + "text": "Using komodo-cli", + "tagName": "h2", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "Initiate the ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": " daemon by calling it from the command line and including any desired runtime parameters.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "When initiating any Smart Chain other than the main KMD chain, the user should always include all parameters that were used to create the Smart Chain.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "Note to Windows Users: Replace ./komodod and ./komodo-cli with komodod.exe and\nkomodo-cli.exe for each step.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "To launch the main KMD chain, execute the following command in the directory where ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": " is installed.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "After the daemon launches, you may interact with it using the ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "To launch another Smart Chain, include the necessary parameters.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "IMPORTANT Always execute the launch command EXACTLY as indicated, and as the\nSmart Chain's developers instruct. If you make a mistake, you must ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "delete the Smart Chain data", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "\nand re-launch to regain access to the Smart Chain's network.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "delete the Smart Chain data", + "tagName": "a", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "For example, to launch the DEX Smart Chain, execute:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "To interact with the DEX daemon, use ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": " like so:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "In the terminal you can call the Komodo documentation by executing:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "To learn more via the terminal about a specific API command, execute:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-komodo-cli" + }, + { + "text": "Using curl", + "tagName": "h2", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "To access a coin daemon remotely -- for example, via a ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": " command in the shell -- the user will need to obtain the ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": " from the ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": " file of the relevant coin daemon.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "using-curl" + }, + { + "text": "Location of .conf File", + "tagName": "h4", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "Assuming the default installation location, the ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " file can be found by exploring the following directories:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "| Operating System | Directory |\n| ---------------- | --------------------------------------------- |\n| MacOS | ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "~/Library/Application Support/Komodo", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " |\n| Windows | ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "C:\\Users\\myusername\\AppData\\Roaming\\Komodo\\", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " |\n| GNU/Linux | ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "~/.komodo", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "Within this directory there are also subdirectories containing all KMD-compatible ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " files used on this node.", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": "Contents of a KMD ", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + }, + { + "text": " file:", + "tagName": "p", + "path": "smart-chains/setup/interacting-with-smart-chains", + "closestElementReference": "location-of-conf-file" + } + ], + "smart-chains/setup/nspv": [ + { + "text": "nSPV", + "tagName": "h1", + "path": "smart-chains/setup/nspv", + "closestElementReference": "n-spv" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "nSPV enhances the normal \"Simple Payment Verification\" (SPV) technology available for a Smart Chain. To learn more about regular SPV technology, ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "read this entry on the Bitcoin wiki.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "read this entry on the Bitcoin wiki.", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "nSPV leverages the dPoW security mechanism of the Komodo Platform to enable secure and scalable super-lite \"SPV\" clients. An nSPV client network utilizes a smaller amount of computation and storage resources compared to a normal SPV network. For all Smart Chains, ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "all the full nodes on the Smart Chain's network", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": " can serve the necessary data to nSPV clients for the latter to have full wallet functionality.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "All Komodo-compatible Smart Chains, including the KMD main chain, can utilize this technology.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "More details are available in the blog posts ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "here", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "here.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "here.", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "introduction" + }, + { + "text": "Installation", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Follow the instructions below to set up an nSPV client.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Usage: nspv [COIN defaults to NSPV] (-c|continuous) (-i|-ips ) (-m[--maxpeers] ) (-t[--testnet]) (-f ) (-p ) (-r[--regtest]) (-d[--debug]) (-s[--timeout] ) \nSupported commands:\nscan (scan blocks up to the tip, creates header.db file)", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Examples:\nSync up to the chain tip and stores all headers in headers.db (quit once synced):", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "nspv scan", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Sync up to the chain tip and give some debug output during that process:", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "nspv -d scan", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Sync up, show debug info, don't store headers in file (only in memory), wait for new blocks:", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "nspv -d -f 0 -c scan", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "installation" + }, + { + "text": "Enabling the nSPV Client", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "enabling-the-n-spv-client" + }, + { + "text": "Copy the following code to the file named ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "enabling-the-n-spv-client" + }, + { + "text": "coins", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "enabling-the-n-spv-client" + }, + { + "text": " (located at the root level of the source directory).", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "enabling-the-n-spv-client" + }, + { + "text": "(Change each value as appropriate for the desired Smart Chain.)", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "enabling-the-n-spv-client" + }, + { + "text": "Property Descriptions", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| coin | (string) | the ticker of the coin |\n| asset | (string) | the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "-ac_name", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": " parameter used to start the Smart Chain |\n| fname | (string) | the full name of the Smart Chain |\n| rpcport | (number) | the RPC port the Smart Chain's daemon uses to receive RPC commands |\n| mm2 | (number) | set this value to ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": " if this coin has been tested and proves capable of functioning on MarketMaker 2.0 software |\n| p2p | (number) | the p2p port the Smart Chain's daemon uses to communicate with other nodes |\n| magic | (string) | the netmagic number for this Smart Chain. The decimal value of ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "magic", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": " can be obtained by executing the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": " RPC on a full node on the Smart Chain network. Convert the decimal value to hex and serialize it into 4 hexbytes; |\n| nSPV | (string) | the ip addresses of the full nodes on the Smart Chain network |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "To start the nSPV client for a specific Smart Chain after its data has been added to the coins file, execute the following.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "property-descriptions" + }, + { + "text": "Tips and Suggestions for Working with the Magic Number", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "The magic number is a unique number that the daemon uses for identification purposes.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "If the direction of the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "magic", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": " number appears to be incorrect, try reversing the order of the numbers.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "magic", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": " number can also be found from the terminal as a ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "stdout", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": " printout when launching the daemon. Look for the line that starts with ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": ">>>>>>>>>>", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": " , extract the hex portion of the string (", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "magic.xxxxxxxx", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "), and reverse its byte order.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "tips-and-suggestions-for-working-with-the-magic-number" + }, + { + "text": "Example", + "tagName": "h6", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": "The hex extracted is ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": "fe1c3450", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": "Therefore the magic value for the coins file is ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": "50341cfe", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example" + }, + { + "text": "Interacting with the nSPV Client", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "The port in each of these examples is the port on which the nSPV client listens for RPC commands.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "For KMD, the port is ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "7771", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": ". For any other Smart Chain, the port is the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": " specified in the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "coins", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "This behaviour can be bypassed by setting the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "-p", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "-p", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "interacting-with-the-n-spv-client" + }, + { + "text": "curl Commands Using Named Parameters", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-commands-using-named-parameters" + }, + { + "text": "Use the example below as a template for creating new ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-commands-using-named-parameters" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-commands-using-named-parameters" + }, + { + "text": " commands for any RPCs available in the nSPV API.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-commands-using-named-parameters" + }, + { + "text": "curl Command Using the json2.0 Interface", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "When using this format for any RPC that requires parameters (also called \"arguments\"), provide the parameters in the order they are given in this documentation.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "For example, the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "spentinfo", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": " RPC lists ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "txid", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": " as the first parameter and ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "vout", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": " as the second. Observe in the following example how the values in the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "\"params\"", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": " key match this order.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "spentinfo", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "Use quotation marks ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "\"\"", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": " for all strings.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "curl-command-using-the-json2-0-interface" + }, + { + "text": "Accessing localhost in the Browser", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": "To access an nSPV client using a browser, create a url that uses ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": "http://127.0.0.1:/api/", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": " as the base url, and add the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": "rpc_name/", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": " and any relevant additional ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": "parameters/", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": " as additional url directions. See the example below.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "accessing-localhost-in-the-browser" + }, + { + "text": "Example", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example-2" + }, + { + "text": "-p", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "p" + }, + { + "text": "Use this parameter at nSPV runtime to set the port on which the nSPV client should listen for RPC commands.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "p" + }, + { + "text": "Example", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example-3" + }, + { + "text": "The following command starts the nSPV client for the KMD main chain and listens on port ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example-3" + }, + { + "text": "3000", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example-3" + }, + { + "text": " for RPC commands.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "example-3" + }, + { + "text": "broadcast", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": "broadcast hex", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": "Use this method to broadcast the hex value returned by the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": "spend", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": "spend", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "broadcast" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | ----------------------------- |\n| hex | (string) | the transaction in hex format |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response" + }, + { + "text": "| Name | Type | Description |\n| --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| expected | (string) | the expected transaction id |\n| broadcast | (string) | the broadcasted transaction id |\n| retcode | (number) | the return code", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response" + }, + { + "text": "0: no error", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response" + }, + { + "text": "-1,-2,-3: failure", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response" + }, + { + "text": "-200x: mostly OK, some of the inputs may not be notarized |\n| type | (string) | the type of the broadcast |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command" + }, + { + "text": "getinfo", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getinfo" + }, + { + "text": "getinfo [hdrheight]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getinfo" + }, + { + "text": "Use this method to get the general information on the state of the blockchain at the moment.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-2" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------- |\n| hdrheight | (number, optional) | supplies the height of the block for which the header data is required |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-2" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-2" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| nSPV | (string) | the mode of nSPV |\n| address | (string) | the address corresponding to the wifkey |\n| pubkey | (string) | the pubkey corresponding to the wifkey |\n| wifexpires | (string) | the time in seconds till the login expires |\n| height | (number) | the current height of the blockchain |\n| chaintip | (string) | the blockhash of the last block |\n| notarization | (json) | a json object containing the notarization details |\n| notarized_height | (number) | the height of the latest block that has been notarized |\n| notarized_blockhash | (string) | the blockhash of the latest block that has been notarized |\n| notarization_txid | (string) | the id of the transaction in which the notarization data is included in the chain being dPoW'ed |\n| notarization_txidheight | (number) | the height of the block in which the notarization transaction is included |\n| notarization_desttxid | (string) | the id of the transaction in which the notarization data is included in the chain acting as the data store |\n| header | (string) | a json object containing the details of the header (of the current block by default / block of height specified by ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-2" + }, + { + "text": "hdrheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-2" + }, + { + "text": " if it is specified) |\n| height | (number) | the height of the block that has been queried |\n| blockhash | (string) | the blockhash of the block that has been queried |\n| hashPrevBlock | (string) | the blockhash of the block before the block that has been queried |\n| hashMerkleRoot | (string) | the merkleroot of the block that has been queried |\n| nTime | (number) | a timestamp recording when this block was created |\n| nBits | (number) | the calculated difficulty target being used for this block |\n| protocolversion | (string) | the version of the client; helps the nspv client disconnect from nodes that are out of date |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-2" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-2" + }, + { + "text": "getnewaddress", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getnewaddress" + }, + { + "text": "getnewaddress [lang]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getnewaddress" + }, + { + "text": "Use this method to create a new address.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getnewaddress" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-3" + }, + { + "text": "| Name | Type | Description |\n| ---- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| lang | (string,optional) | the language in which the seed words are to be generated; can be one of: \"english\", \"french\", \"italian\", \"japanese\", \"korean\", \"russian\", \"spanish\", \"chinese_simplified\", \"chinese_traditional\" |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-3" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-3" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |\n| seed | (string) | seed phrase of the generated address; currently generates a phrase with ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-3" + }, + { + "text": "23", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-3" + }, + { + "text": " seed words compatible with the other wallets in the Komodo Ecosystem |\n| wif | (string) | wifkey of the generated address |\n| address | (string) | the generated address |\n| pubkey | (string) | pubkey of the generated address |\n| wifprefix | (number) | prefix of the generated wifkey; depends on the network |\n| compressed | (number) | whether the wifkey generated is compressed |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-3" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-3" + }, + { + "text": "Command (Without arguments)", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-without-arguments" + }, + { + "text": "Command (To get the seed words in italian)", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-to-get-the-seed-words-in-italian" + }, + { + "text": "getpeerinfo", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getpeerinfo" + }, + { + "text": "getpeerinfo", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getpeerinfo" + }, + { + "text": "Use this method to get the information of all peers on the network.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "getpeerinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-4" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-4" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "| Name | Type | Description |\n| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| nodeid | (number) | the number given to a node by our instance of the nSPV client |\n| ipaddress | (string) | the ipaddress of the node |\n| port | (number) | the p2p port used to connect to this node |\n| lastping | (number) | the unix time at which this node was last pinged |\n| time_started_con | (number) | the unix time at which a connection to this node was established |\n| time_last_request | (number) | the unix time at which a connection was last requested |\n| services | (number) | this value encodes the available services from this node in decimal format; converted to HEX, ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "70000005", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": " : nSPV support with both addressindex and spent index , ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "40000005", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": " : nSPV support but neither addressindex nor spent index, ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "00000005", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": " is the services value for a normal node |\n| missbehavescore | (number) | the score given to this node if the node was misbehaving |\n| bestknownheight | (number) | the height of the blockchain as best known by this node |\n| in_sync | (string) | the sync status of the node; ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "synced", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": " indicates that the client has verified that the chain tip's block header from the node links back to the last notarization; after the client been running a while, all honest nodes should be synced to the same block |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-4" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-4" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-3" + }, + { + "text": "hdrsproof", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "hdrsproof prevheight nextheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "This method scans backwards from the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "prevheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": " until the process encounters a notarization transaction, then forward from ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "nextheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": " until the process encounters another notarization transaction.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "Then the process finds the notarized blocks corresponding to these two notarization transactions.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "Then the process returns all the block headers between these two notarized blocks.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "Now that both ends of this segment of blocks are notarized blocks, all block headers in this segment can be validated to see if they link back to each other.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "hdrsproof" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-5" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------ |\n| prevheight | (number) | the block number from which headers are required |\n| nextheight | (number) | the block number to which headers are required |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-5" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "| Name | Type | Description |\n| -------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| prevht | (string) | the height of the first notarized block below the height ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "prevheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| nextht | (string) | the height of the first notarized block above the height ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "nextheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| prevtxid | (string) | the id of the transaction that contains the notarization data of the block of height ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "prevht", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| prevtxidht | (string) | the height of the block in which the transaction with id ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "prevtxid", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " is present |\n| prevtxlen | (string) | the length of the transaction with id ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "prevtxid", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| nexttxid | (string) | the id of the transaction that contains the notarization data of the block of height ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "nextht", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| nexttxidht | (string) | the height of the block in which the transaction with id ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "nexttxid", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " is present |\n| nexttxlen | (string) | the length of the transaction with id ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "nexttxid", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " |\n| numhdrs | (string) | the number of headers being returned |\n| headers | (string) | a json object containing the details of the header (of the current block by default / block of height specified by ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "hdrheight", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": " if it is specified) |\n| height | (number) | the height of the block that has been queried |\n| blockhash | (string) | the blockhash of the block that has been queried |\n| hashPrevBlock | (string) | the blockhash of the block before the block that has been queried |\n| hashMerkleRoot | (string) | the merkleroot of the block that has been queried |\n| nTime | (number) | a timestamp recording when this block was created |\n| nBits | (number) | the calculated difficulty target being used for this block |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-5" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-5" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-4" + }, + { + "text": "help", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "help" + }, + { + "text": "help", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "help" + }, + { + "text": "This method returns the help output of all available methods.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "help" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-6" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-6" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-6" + }, + { + "text": "| Name | Type | Description |\n| ------- | ---------------- | ----------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| methods | (array of jsons) | an array containing a json object for each method |\n| method | (string) | name of a method |\n| fields | (array) | an array conataining the description of parameters expected |\n| num | (number) | the number of methods available |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-6" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-6" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-5" + }, + { + "text": "listtransactions", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listtransactions" + }, + { + "text": "listtransactions [address [isCC [skipcount [filter]]]]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listtransactions" + }, + { + "text": "This method returns a list of transactions for an address.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listtransactions" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-7" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |\n| address | (string, optional) | the address for which transactions are to be listed; if not specified, the current active address is used |\n| isCC | (number, optional) | only return transactions that are related to Antara modules |\n| skipcount | (number, optional) | skips the specified number of transactions starting from the oldest; always returns the latest transaction |\n| filter | (number, optional) | (in development) |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-7" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-7" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------------- | --------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| txids | (array of jsons) | an array containing jsons that describe the transactions |\n| height | (number) | the height of the block in which the transaction was included |\n| txid | (string) | the id of the transaction |\n| value | (number) | the amount of coins in the vin/vout (inputs and outputs) |\n| vin/vout | (number) | the index of vin/vout in the transaction |\n| address | (string) | the address for which the transactions are being returned |\n| isCC | (number) | whether the address belongs to an Antara module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numtxids | (number) | number of vouts/vins being returned |\n| skipcount | (number) | the number of transactions that have been skipped, starting from the oldest transaction |\n| filter | (number) | (in development) |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-7" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-7" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-6" + }, + { + "text": "listunspent", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listunspent" + }, + { + "text": "listunspent [address [isCC [skipcount [filter]]]]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listunspent" + }, + { + "text": "Use this method to retrieve all unspent outputs belonging to an address.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "listunspent" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-8" + }, + { + "text": "| Name | Type | Description |\n| --------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |\n| address | (string, optional) | the address for which transactions are to be listed; if not specified, the current active address is used |\n| isCC | (number, optional) | only return transactions that are related to Antara modules |\n| skipcount | (number, optional) | skips the specified number of transactions starting from the oldest; always returns the latest transaction |\n| filter | (number, optional) | (in development) |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-8" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-8" + }, + { + "text": "| Name | Type | Description |\n| --------- | ---------------- | ------------------------------------------------------------ |\n| result | (string) | whether the command was successful |\n| utxos | (array of jsons) | an array containing jsons that describe the outputs |\n| height | (number) | the height of the block in which the output was created |\n| txid | (string) | the id of the transaction in which the output is present |\n| vout | (number) | the index of the vout (output) in the transaction |\n| value | (number) | the amount of coins in the vout (output) |\n| rewards | (number) | the amount of active user rewards claimable by the output |\n| address | (string) | the address for which the transactions are being returned |\n| isCC | (number) | whether the address belongs to an Antara module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numutxos | (number) | number of vouts(outputs) being returned |\n| balance | (number) | the total balance available for the address |\n| rewards | (number) | the total rewards claimable by the address |\n| skipcount | (number) | the number of utoxs that have been skipped; from the oldest |\n| filter | (number) | (in development) |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-8" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-8" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-7" + }, + { + "text": "login", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "login" + }, + { + "text": "login wif", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "login" + }, + { + "text": "Use this method to log in to an address using its wifkey.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "login" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-9" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | --------------------------------------------------- |\n| wif | (string) | the wifkey (wallet import format of the privatekey) |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-9" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-9" + }, + { + "text": "| Name | Type | Description |\n| ---------- | --------- | ------------------------------------------------------------------------ |\n| result | (string) | whether the command was successful |\n| status | (string) | the time till the expiry of the login |\n| address | (string) | the address corresponding to the wifkey |\n| pubkey | (string) | the pubkey corresponding to the wifkey |\n| wifprefix | (number) | the prefix of the wifkey (indicates the intended network for the wifkey) |\n| compressed | (boolean) | indicates whether the wifkey is compressed |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-9" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-9" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-8" + }, + { + "text": "logout", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "logout" + }, + { + "text": "logout", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "logout" + }, + { + "text": "Use this method to log out of the current active address.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "logout" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-10" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-10" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ----------------------------- |\n| result | (string) | whether the command succeeded |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-10" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-10" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-9" + }, + { + "text": "mempool", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "mempool address isCC memfunc [txid vout evalcode ccfunc]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "This method returns the current transactions in the mempool. The various parameters can be used to filter the transactions.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "which args are optional and eachone's use", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "and values and meanings of memfunc", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "memfunc (0 all, 1 address recv, 2 txid/vout spent, 3 txid inmempool 4)", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "gcharang: all the arguments are optional; and they are in development", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "mempool" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-11" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | ------------------------------------------------------ |\n| address | (string, optional) | if the transactions should belong to the address |\n| isCC | (number, optional) | if the transactions should belong to any Antara module |\n| memfunc | (number, optional) | (in development) |\n| txid | (string, optional) | (in development) |\n| vout | (number, optional) | (in development) |\n| evalcode | (number, optional) | (in development) |\n| ccfunc | (number, optional) | (in development) |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-11" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-11" + }, + { + "text": "| Name | Type | Description |\n| -------- | ------------------ | ------------------------------------------------------------ |\n| result | (string) | whether the command was successful |\n| txids | (array of strings) | the ids of the transactions in the mempool |\n| address | (string) | the address that was used to filter the mempool |\n| isCC | (number) | if the transactions returned belong to an Antara Module |\n| height | (number) | the height of the blockchain when this response was returned |\n| numtxids | (number) | the number of transaction ids that are being returned |\n| txid | (string) | (in development) |\n| vout | (number) | (in development) |\n| memfunc | (number) | (in development) |\n| type | (string) | the type of the filter apploed to the mempool |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-11" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-11" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-10" + }, + { + "text": "notarizations", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "notarizations" + }, + { + "text": "notarizations height", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "notarizations" + }, + { + "text": "This method returns the notarization data for a given height.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "notarizations" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-12" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ------------------------------------------------- |\n| height | (number) | the height at which notarization data is required |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-12" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-12" + }, + { + "text": "| Name | Type | Description |\n| ------------------------ | -------- | ---------------------------------------------------------------------------------------------------------- |\n| result | (string) | whether the command was successful |\n| prev | (json) | the details of the previous notarization |\n| notarized_height | (number) | the height of the latest block that has been notarized |\n| notarized_blockhash | (string) | the blockhash of the latest block that has been notarized |\n| notarization_txid | (string) | the id of the transaction in which the notarization data is included in the chain being dPoW'ed |\n| notarization_txidheight | (number) | the height of the block in which the notarization transaction is included |\n| notarization_desttxid | (string) | the id of the transaction in which the notarization data is included in the chain acting as the data store |\n| next | (json) | the details of the next notarization |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-12" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-12" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-11" + }, + { + "text": "spend", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spend" + }, + { + "text": "spend address amount", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spend" + }, + { + "text": "This method can be used to spend coins from the current active address to any other address.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spend" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-13" + }, + { + "text": "| Name | Type | Description |\n| ------- | -------- | ---------------------------- |\n| address | (string) | the address of the recipient |\n| amount | (number) | the amount to be sent |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-13" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-13" + }, + { + "text": "| Name | Type | Description |\n| ------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| rewards | (string) | the rewards being claimed by this spend transaction |\n| validated | (string) | (in development) |\n| tx | (json) | a json object containing details of the transaction |\n| nVersion | (number) | version of the komodo daemon |\n| vin | (array of jsons) | the inputs being consumed by the transaction |\n| txid | (string) | the id of the transaction whose input is being spent |\n| vout | (number) | the output number in the above transaction |\n| scriptSig | (string) | the redeem script that satisfies the scriptPubkey of the above output |\n| sequenceid | (number) | the sequence number that has been set |\n| vout | (array of jsons) | the outputs being created by the transaction |\n| value | (string) | the value in the output |\n| scriptPubKey | (string) | the locking script placed on the above value |\n| nLockTime | (number) | the locktime that has been set |\n| nExpiryHeight | (number) | the block height after which the transaction will be removed from the mempool if it has not been mined |\n| valueBalance | (number) | (in development) |\n| result | (string) | whether the command succeeded |\n| hex | (string) | the transaction in hex format; this should be broadcast to the network using the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-13" + }, + { + "text": "broadcast", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-13" + }, + { + "text": " method |\n| retcodes | (number) | the return codes; an indication of the success or failure of the creation of the transaction |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-13" + }, + { + "text": "broadcast", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-13" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-13" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-12" + }, + { + "text": "spentinfo", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spentinfo" + }, + { + "text": "spentinfo txid vout", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spentinfo" + }, + { + "text": "This method returns the spent info of the output specified by the arguments.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "spentinfo" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-14" + }, + { + "text": "| Name | Type | Description |\n| ---- | -------- | --------------------------------------------------------------------- |\n| txid | (string) | the id of the transaction whose spent info is required |\n| vout | (number) | the vout number in the above transaction whose spent info is required |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-14" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-14" + }, + { + "text": "| Name | Type | Description |\n| --------------- | -------- | --------------------------------------------------------------------- |\n| result | (string) | whether the command succeeded |\n| txid | (string) | the id of the transaction whose spent info is returned |\n| vout | (string) | the vout number in the above transaction whose spent info is required |\n| spentheight | (string) | the block height at which the output has been spent |\n| spenttxid | (string) | the id of the transaction that spent this output |\n| spentvini | (string) | the input number of this output in the transaction that spent it |\n| spenttxlen | (string) | the length of the transaction that spent this output |\n| spenttxprooflen | (string) | the length of proof of the transaction that spent this output |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-14" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-14" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-13" + }, + { + "text": "stop", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "stop" + }, + { + "text": "stop", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "stop" + }, + { + "text": "Stops the nSPV instance associated with the port specified in the curl command.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "stop" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-15" + }, + { + "text": "| Name | Type | Description |\n| ------ | ---- | ----------- |\n| (none) | | |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-15" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-15" + }, + { + "text": "| Name | Type | Description |\n| ------ | -------- | ---------------------------------- |\n| result | (string) | whether the command was successful |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-15" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-15" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-14" + }, + { + "text": "txproof", + "tagName": "h2", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": "txproof txid vout [height]", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": "This method is an internal function used by the ", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": " method.", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": "gettransaction", + "tagName": "a", + "path": "smart-chains/setup/nspv", + "closestElementReference": "txproof" + }, + { + "text": "Arguments", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-16" + }, + { + "text": "| Name | Type | Description |\n| ------ | ------------------ | -------------------------------------------------- |\n| txid | (string) | the id of the transaction whose proof is requested |\n| vout | (number) | the number of the output in the above transaction |\n| height | (number, optional) | |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "arguments-16" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-16" + }, + { + "text": "| Name | Type | Description |\n| ---------- | -------- | ------------------------------------------------------------ |\n| txid | (string) | the id of the transaction whose proof is returned |\n| height | (string) | the height at which the proof of the transaction is returned |\n| txlen | (string) | the length of the transaction |\n| txprooflen | (string) | the length of the proof for the transaction |\n| lastpeer | (string) | the last known peer |", + "tagName": "p", + "path": "smart-chains/setup/nspv", + "closestElementReference": "response-16" + }, + { + "text": "📌 Examples", + "tagName": "h4", + "path": "smart-chains/setup/nspv", + "closestElementReference": "examples-16" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/setup/nspv", + "closestElementReference": "command-15" + } + ], + "smart-chains/setup/smart-chain-maintenance": [ + { + "text": "Smart Chain Maintenance", + "tagName": "h1", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "smart-chain-maintenance" + }, + { + "text": "Manually Deleting Blockchain Data", + "tagName": "h2", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "Sometimes it is necessary to manually delete all blockchain data. This should automatically trigger a full re-sync of the Smart Chain.", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "Users should exercise caution not to delete the ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": " file during this procedure. We recommend that the user make frequent backups of the ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": " file, especially before deleting files from the data directory.", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "To erase all synced blockchain data, the following files should be deleted from the ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": ".komodo", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": " folder:", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "manually-deleting-blockchain-data" + }, + { + "text": "Files to Delete", + "tagName": "h4", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "blocks", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "chainstate", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "notarisations", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "komodostate", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "komodostate.ind", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "peers.dat", + "tagName": "li", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "files-to-delete" + }, + { + "text": "Default Location for Files", + "tagName": "h4", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": "| Operating System | Directory |\n| ---------------- | --------------------------------------------- |\n| MacOS | ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": "~/Library/Application Support/Komodo", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": " |\n| Windows | ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": "C:\\Users\\myusername\\AppData\\Roaming\\Komodo\\", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": " |\n| GNU/Linux | ", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": "~/.komodo", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + }, + { + "text": " |", + "tagName": "p", + "path": "smart-chains/setup/smart-chain-maintenance", + "closestElementReference": "default-location-for-files" + } + ], + "smart-chains/setup/updating-from-source": [ + { + "text": "Updating Smart Chain Software From Source", + "tagName": "h1", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "updating-smart-chain-software-from-source" + }, + { + "text": "Linux", + "tagName": "h2", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "To update your compiled ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": " daemon, follow the steps below carefully. For each step, do not proceed to the next step until the current step is fully complete.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "You may leave the ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": " daemon running, if necessary, and if your machine has sufficient resources.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "Alternatively, you may stop the daemon by executing ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "linux" + }, + { + "text": "Navigate to your komodo directory", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "navigate-to-your-komodo-directory" + }, + { + "text": "Reset Your Local Repository", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "reset-your-local-repository" + }, + { + "text": "Clean the Source Directory", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "clean-the-source-directory" + }, + { + "text": "Update Your Local Source Code", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "update-your-local-source-code" + }, + { + "text": "Compile the Latest Komodo Binary", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "compile-the-latest-komodo-binary" + }, + { + "text": "Restart the komodod Daemon", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon" + }, + { + "text": "Start your services as usual.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon" + }, + { + "text": "(If you did not stop the daemon before compiling, stop the daemon using ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon" + }, + { + "text": " and start the daemon again.)", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon" + }, + { + "text": "Rapid Update Method", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method" + }, + { + "text": "The steps below can often be used to update the daemon.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method" + }, + { + "text": "These steps take a lesser amount of time, but they may occasionally produce an error during compilation. If the steps below do not succeed, the compiler will cease and return an error. When this happens, simply switch to the update steps listed above.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method" + }, + { + "text": "MacOS", + "tagName": "h2", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "To update your compiled ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": " daemon, follow the steps below carefully. For each step, do not proceed to the next step until the current step is fully complete.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "You may leave the ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": " daemon running, if necessary, and if your machine has sufficient resources.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "Alternatively, you may stop the daemon by executing ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "mac-os" + }, + { + "text": "Navigate to your komodo directory", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "navigate-to-your-komodo-directory-2" + }, + { + "text": "Reset Your Local Repository", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "reset-your-local-repository-2" + }, + { + "text": "Clean the Source Directory", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "clean-the-source-directory-2" + }, + { + "text": "Update Your Local Source Code", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "update-your-local-source-code-2" + }, + { + "text": "Compile the Latest Komodo Binary", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "compile-the-latest-komodo-binary-2" + }, + { + "text": "Restart the komodod Daemon", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon-2" + }, + { + "text": "Start your services as usual.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon-2" + }, + { + "text": "(If you did not stop the daemon before compiling, stop the daemon using ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon-2" + }, + { + "text": "~/komodo/src/komodo-cli stop", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon-2" + }, + { + "text": " and start the daemon again.)", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "restart-the-komodod-daemon-2" + }, + { + "text": "Rapid Update Method", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method-2" + }, + { + "text": "The steps below can often be used to update the daemon.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method-2" + }, + { + "text": "These steps take a lesser amount of time, but they may occasionally produce an error during compilation. If the steps below do not succeed, the compiler will cease and return an error. When this happens, simply switch to the update steps listed above.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "rapid-update-method-2" + }, + { + "text": "Windows", + "tagName": "h2", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "windows" + }, + { + "text": "To update the Windows software, you will again need access to your available installation of Linux where you originally compiled the software.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "windows" + }, + { + "text": "Build the New Executables", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "build-the-new-executables" + }, + { + "text": "Execute the following commands on your Linux machine to build the new executable files.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "build-the-new-executables" + }, + { + "text": "This can take some time.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "build-the-new-executables" + }, + { + "text": "Move Executables to Windows OS", + "tagName": "h4", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "Once the process completes, find the ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "komodod.exe", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "komodo-cli.exe", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": " files and move them to your Windows OS machine.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "You may drop these executable files into the same ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "kmd", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": " folder to overwrite the old executables files.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "Once complete, run the ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "komodod.exe", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": "komodo-cli.exe", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + }, + { + "text": " files to verify that they work properly.", + "tagName": "p", + "path": "smart-chains/setup/updating-from-source", + "closestElementReference": "move-executables-to-windows-os" + } + ], + "smart-chains/tutorials/basic-environment-setup-for-linux-vps": [ + { + "text": "Basic Environment Setup for Linux VPS", + "tagName": "h1", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "basic-environment-setup-for-linux-vps" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "introduction" + }, + { + "text": "This tutorial provides guidance in creating a simple environment for development in the Komodo ecosystem.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "introduction" + }, + { + "text": "The content herein is not comprehensive. Rather, this content provides a starting point, from which an enthusiastic learner should be capable of customizing and developing their own approach.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "introduction" + }, + { + "text": "Rent a VPS", + "tagName": "h2", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "A common environment choice among developers is to use a Virtual Private Server (VPS). A VPS allows a developer to use the Internet to access high quality hardware with corporate-level high speed Internet access.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "Popular VPS choices include ", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "Amazon Web Services (AWS)", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "DigitalOcean", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "Amazon Web Services (AWS)", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "DigitalOcean", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "One reason a VPS is popular is that a developer can quickly create new instances of a virtual machine. This facilitates the developer in having a clean environment that is targeted for a specific purpose.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "VPS's are also relatively cheap. Both AWS and DigitalOcean provide the basic necessities for ~$20/month, depending on your desired specifications.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "When using an AWS instance, do not use the free tier's micro t2 instance. This tier does not include enough RAM for blockchain software to function properly. Instead, select a size of at least medium or greater. This will ensure at least 4GB RAM.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "Alternatively, you can use your own personal computer, or a bare-metal server. However, troubleshooting on a personal setup can prove to be more time consuming than on a VPS.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "rent-a-vps" + }, + { + "text": "Recommended Minimum Server Specifications:", + "tagName": "h3", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "CPU with 4 cores", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "8 GB RAM", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "~100GB SSD", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Note that using an HDD instead of a SSD will dramatically increase synchronization time, and thus slow down your workflow", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Note that using an HDD instead of a SSD will dramatically increase synchronization time, and thus slow down your workflow", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Ubuntu version 18.04 (for beginners)", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Ubuntu is the most popular Linux distribution", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "The majority of Komodo's documentation is tested and written on Ubuntu", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "To learn more about Linux, ", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "read this linked article", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Ubuntu is the most popular Linux distribution", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "The majority of Komodo's documentation is tested and written on Ubuntu", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "To learn more about Linux, ", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "read this linked article", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "read this linked article", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "recommended-minimum-server-specifications" + }, + { + "text": "Connect to Your VPS", + "tagName": "h2", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Once you have chosen your VPS provider, you will need to connect to your VPS.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "New developers often find this process confusing.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Your VPS provider should have several tutorials available to help you through this process.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Look for tutorials on the following topics.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "How to launch a terminal shell on your laptop or desktop machine", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "How to set up SSH keys for secure login access", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "How to execute a ", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "ssh", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": " command on your local machine to connect to your VPS", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "How to enter ", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "sudo", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": " commands on your VPS", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "For example, AWS has the following documentation to assist new developers in accessing VPS's that use the AWS EC2 service. Choose between MacOS & Linux, or Windows, both of which have different tutorial paths.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Link to AWS tutorial starting point", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Link to AWS tutorial starting point", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "connect-to-your-vps" + }, + { + "text": "Initial VPS Setup", + "tagName": "h2", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Once you can access your VPS via the terminal, it is time to consider security in your environment. You are accessing a machine over the Internet, and there are myriad ways by which an attack can compromise your connection.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "To ensure your own safety, consider the following security measures.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Never log into your VPS as the root user", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Consider disabling the option to log in as root", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Use SSH keys to log in, instead of a password", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Enable a firewall to limit all unwanted traffic", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "The following tutorials provide many useful tips on creating a secure server.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Initial Server Setup with Ubuntu 18.04 | Digital Ocean", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Initial Server Setup with Ubuntu 18.04 | Digital Ocean", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Using SSH to connect to a remove server", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "Using SSH to connect to a remove server", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "For experience learning the Linux environment, consider the following tutorials.", + "tagName": "p", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How to use the Unix command line (interactive course)", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How to use the Unix command line (interactive course)", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "An Introduction to Linux (Especially \"A Culture of Learning\")", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "An Introduction to Linux (Especially \"A Culture of Learning\")", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How To Download Software and Content onto your Linux VPS", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How To Download Software and Content onto your Linux VPS", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How To Use cd, pwd, and ls to Explore the File System on a Linux Server", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How To Use cd, pwd, and ls to Explore the File System on a Linux Server", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How to Add and Delete Users on Ubuntu 16.04", + "tagName": "li", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + }, + { + "text": "How to Add and Delete Users on Ubuntu 16.04", + "tagName": "a", + "path": "smart-chains/tutorials/basic-environment-setup-for-linux-vps", + "closestElementReference": "initial-vps-setup" + } + ], + "smart-chains/tutorials/create-a-default-smart-chain": [ + { + "text": "Creating Komodo Smart Chains", + "tagName": "h1", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "introduction" + }, + { + "text": "Requirements for Creating a New Chain", + "tagName": "h4", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "2 nodes with the ability to open ports (a node can be either a computer or a VPS)", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "At least 4GB RAM each", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "At least 2 CPU cores each", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "64-bit Operating System (Ubuntu 18.04 recommended)", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "Komodo Smart Chain software installed on each", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "(when the goal is only to build a new Smart Chain, there is no need to sync the KMD main chain)", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "(when the goal is only to build a new Smart Chain, there is no need to sync the KMD main chain)", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "When you are building and testing a Komodo Smart Chain, please do not hesitate\nto reach out to us when you are stuck. We wish to make this as easy as\npossible. Our support agents are available in our", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "#support channel in Discord", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "\nfor many hours each day.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "requirements-for-creating-a-new-chain" + }, + { + "text": "Basic Info for Connecting At Least Two Nodes", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "Basic knowledge about how to connect two nodes is recommended for the initial setup.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "As per the original blockchain designs of Satoshi Nakamoto, a Komodo Smart Chain does not exist on a single node. Rather, it exists via a connection between two or more nodes. This is the nature of decentralization: it is on the network we rely, rather than a single authority. Therefore, the design of the technology encourages the developer to have two separate nodes which are able to connect over a network.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "In the most ideal circumstance, the new Komodo developer will already have two virtual private servers (VPS's) available for testing. VPS's can be cheap and easy to manage. A typical VPS will either have a static external IP or can be assigned one.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "If the new developer does not have two VPS's available, setting up a test Smart Chain on two local machines in a home or office-type setting is still achievable, but it may require more troubleshooting.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "When using a home or office-type setup, the challenge lies in the way the network is created, and there are myriad network setups.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "For example, if the developers are operating on a local router, where the two machines are connected via wifi, the local ip addresses of the machines are harder to find. This is because the router assigns new local ip addresses to the machines each time they re-connect to the router. It is not possible to see the ip addresses from the Internet. In this situation, the developer must log into the router's software interface and search for the currently assigned local ip addresses.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "A home or office-type setup can suffice, if you're just looking to test an Smart Chain quickly and don't want to spend money on a VPS. However, don't be surprised if you need to ask for help. Please reach out to us, and we'll help the best we can.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "To test the creation of a Smart Chain using only a single node, ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "see these linked instructions.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "see these linked instructions.", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "To prepare for the next step, execute the following command in the terminal on both machines:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "From the response, record the ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "ip address", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": " value for additional use.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "With the ip addresses available, we are now prepared to test the connection between the machines.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "This command will generate a response every second, indicating the ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": " speed with which your machines are able to connect.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "If you do not see a similar response in the shell, your machines are not able to connect. Please reach out to our team and we will do our best to assist you.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "basic-info-for-connecting-at-least-two-nodes" + }, + { + "text": "Part I: Creating a New Komodo Smart Chain", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "With your machines successfully able to ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "ping", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": " each other, you are ready to create your first Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "The following instructions use the simplest possible set of parameters in creating a new Smart Chain: a coin with the ticker symbol ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "HELLOWORLD", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "777777", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": " pre-mined coins, and a block reward of ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": ".0001", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "On your first node, change into the directory where Komodo's ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": " are installed and execute the following commands in the terminal:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-i-creating-a-new-komodo-smart-chain" + }, + { + "text": "Mac & GNU/Linux", + "tagName": "h4", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "mac-and-gnu-linux" + }, + { + "text": "Windows", + "tagName": "h4", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "windows" + }, + { + "text": "If you want the Smart Chain to have Antara Modules enabled, please include the\n", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "windows" + }, + { + "text": "-ac_cc", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "windows" + }, + { + "text": " parameter with the\nrequired value in your launch parameters on both the nodes.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "windows" + }, + { + "text": "-ac_cc", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "windows" + }, + { + "text": "Verify the Response", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "After issuing this command in the terminal on both machines, you will find the p2p port in the terminal window.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "In the above string, take note of the p2p and RPC ports, as well as the magic number. These values must match on both nodes for the chains to be identical. If they are not the same, verify that the launch command is the same on both the nodes.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "In the example above, the p2p port is ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "8096", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": ". Make sure that the p2p port is open to the internet or any other network from which the second node connects.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "This completes the first half of the Smart Chain creation process. Scroll down to ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Part II", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Part II", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Please refer to ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Antara Customization\nparameters", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": " for a full list of\nparameters to customize the characteristics of your blockchain.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Antara Customization\nparameters", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Please note the requirements for\n", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": ", and instructions\nfor using ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "\nunder various network conditions, including firewalls and LANs.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "ac_supply", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "addnode", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "verify-the-response" + }, + { + "text": "Part II: Connecting the Second Node", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "On the second node you issue the same command, but with a key difference. This time, use the first node's IP address.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "Once the daemon loads, compare the string that starts with ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": ">>>>>>>>>>", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": " in the second node to the one from the first node to make sure they are identical.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "Mining can be started on a node using the following command:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "$(nproc)", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": " in the above command makes the daemon mine using all the available CPU threads, which might be necessary in a low end VPS.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "On a Komodo-based blockchain, all of the pre-mined coins are mined in the first block. Therefore, whichever machine executes the mining command will receive the entirety of the blockchain's pre-mined coin supply, as set in the ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": " parameter. Upon mining the first block, these coins are available in the default ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "wallet.dat", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": " file.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "ac_supply", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "To collect all the mining rewards from the node to a single address, execute the following commands before issuing the ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "setgenerate", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": " command:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "After issuing the mining command is issued, can check that the two nodes are connected by using the following command:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "If the nodes are properly connected, both nodes will respond with: ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "\"connections\": 1", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "These are the coins you will later distribute to your community, using either our native DEX, ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": ", or our decentralized-ICO software (coming soon), or on any other third-party exchange.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "You can check the contents of the wallet by executing the following command in the terminal:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "To verify that everything is properly initiated, send a few coins from the second node to the first node:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "part-ii-connecting-the-second-node" + }, + { + "text": "Node1", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1" + }, + { + "text": "Node2", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node2" + }, + { + "text": "Node1", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "More info can be found in the debug.log of the chain found at:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "MacOS:", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "~/.komodo/HELLOWORLD/debug.log", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "Windows:", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "%appdata%\\komodo\\HELLOWORLD\\debug.log", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "GNU/Linux:", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "~/.komodo/HELLOWORLD/debug.log", + "tagName": "li", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "node1-2" + }, + { + "text": "Querying the Smart Chain", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Using the ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": " software, which is included in any default installation of ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": ", you can now execute many commands on your new Smart Chain. This enables you to perform transactions, create and execute smart contracts, store data in KV storage, etc.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Since the Komodo software began as a fork of Zcash and BTC, essentially all commands that are available on these two upstream blockchains are also available on your new Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Furthermore, a key purpose of the Komodo blockchain is to create features and functions that facilitate and enhance your development experience. Information regarding these enhancements is available throughout this documentation.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "In addition, since you are building on a Komodo-based blockchain, you have easy access to our multi-coin wallet and atomic-swap powered decentralized exchange, ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": ", the Antara development framework and modules, our decentralized-ICO software, and our future upgrades.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "querying-the-smart-chain" + }, + { + "text": "Example commands", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "example-commands" + }, + { + "text": "To see general information about your new Smart Chain, execute this command:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "example-commands" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "example-commands" + }, + { + "text": "The following command returns information about all available RPC and API commands:", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "example-commands" + }, + { + "text": "./komodo-cli -ac_name=HELLOWORLD help", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "example-commands" + }, + { + "text": "Secure this Smart Chain with Delayed Proof of Work", + "tagName": "h2", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Your new Smart Chain can receive the same security of the Bitcoin hash rate through our security mechanism, called \"delayed Proof of Work\" (dPoW).", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "There are two aspects to the cost for dPoW services. The first comes from the cost of making records in your Smart Chain's database, and in the records of the KMD main chain. These records are called \"notarizations.\"", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Notarizations are performed as transactions on your blockchain and on the main KMD blockchain. The transactions have messages included inside that indicate the most recent and secure state of your Smart Chain. Your Komodo Smart Chain will know how to recognize and rely on notarizations automatically.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Every ten to twenty minutes, our notary nodes will hash the history of your Smart Chain and insert it as a record into the KMD main chain. This provides an initial layer of security, but it is not the final layer.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "In another ten to twenty minutes, all of the information in the KMD chain (including your Smart Chain's hashed data) is hashed and inserted into the BTC blockchain. Once your information is pushed into BTC, your Smart Chain will consider all notarized information effectively settled and immutable; only the recent, un-notarized transactions are still relying on your Smart Chain's raw consensus mechanism. ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Click here to learn more about the types of consensus mechanisms you can choose on a KMD Smart Chain", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Click here to learn more about the types of consensus mechanisms you can choose on a KMD Smart Chain", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Thus, your Smart Chain will have all the power of Bitcoin securing your blockchain's history, with the zero-knowledge privacy of the Zcash parameters pre-installed, and all of the interoperability, scalability, and more that Komodo adds to your development experience.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "As the notarizations are transactions, they naturally have a cost, and this cost is covered by you, the Smart Chain developer. Over the course of a year, assuming consistent activity, the cost for performing these transactions is 365 KMD, and also 365 of your Smart Chain's coins.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "There are extra costs involved that are aimed to compensate the Notary Nodes for the setup and maintainance of the dPOW service. You may reach out to our third-party service providers to receive a quote. They can provide various services related to Smart Chain creation, electrum-server (SPV) setup and maintenance, explorer setup, and other blockchain services.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Click Here for the List of Third-Party Service Providers", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Click Here for the List of Third-Party Service Providers", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "Several teams have already signed up for our services and are developing on our platform. From our experience with them we can confidently say that our pricing is competitive compared to other blockchain services. Furthermore, when considering that a Komodo-based Smart Chain does not require KMD for gas and transaction fees, the cost to your end-users can be exponentially cheaper. All things considered, creating a fully independent blockchain on Komodo can cost but a small fraction of what it would cost to deploy a single smart contract on the platforms of some of our competitors.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "secure-this-smart-chain-with-delayed-proof-of-work" + }, + { + "text": "A Note About Low-Activity Blockchains", + "tagName": "h3", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "Blockchain technology relies on a network of users using the blockchain and sharing data to function.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "Smart Chains that are built for low-activity networks require extra steps from the developer to ensure proper syncing between nodes.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "If you are building a Smart Chain and would like more information on maintaining constant syncing across nodes, our ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "third-party service providers", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": " can provide dedicated support for this topic. Please also reach out to our support team and community on ", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "Discord.", + "tagName": "p", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "third-party service providers", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + }, + { + "text": "Discord.", + "tagName": "a", + "path": "smart-chains/tutorials/create-a-default-smart-chain", + "closestElementReference": "a-note-about-low-activity-blockchains" + } + ], + "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node": [ + { + "text": "Creating a Smart Chain on a Single Node", + "tagName": "h1", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "creating-a-smart-chain-on-a-single-node" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "Under most circumstances, a developer should ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "use two separate nodes to set up and create a Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "use two separate nodes to set up and create a Smart Chain.", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "However, occasionally a developer may need to create a Smart Chain on a single node. This can be achieved using the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "testnode", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": " runtime parameter. The following tutorial is only neccesary if the developer desires to run two instances of the daemon on the same server.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "testnode", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "In this situation, the developer may create a Smart Chain by running two daemons with slightly different configurations on the same node.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "introduction" + }, + { + "text": "Tutorial Prerequisites", + "tagName": "h4", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "Komodo Smart Chain software installed on a compatible machine", + "tagName": "li", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "Install instructions here", + "tagName": "li", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "Install instructions here", + "tagName": "li", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "Install instructions here", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "Launch the First daemon", + "tagName": "h2", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-first-daemon" + }, + { + "text": "Select the desired Antara customization parameters.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-first-daemon" + }, + { + "text": "Link to Antara Customization Parameters", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-first-daemon" + }, + { + "text": "Link to Antara Customization Parameters", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-first-daemon" + }, + { + "text": "For this example, we use simple configurations.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-first-daemon" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "command" + }, + { + "text": "If you want the Smart Chain to have Antara Modules enabled, please include the\n", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "command" + }, + { + "text": "-ac_cc", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "command" + }, + { + "text": " parameter with the\nrequired value in your launch parameters on both the daemons.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "command" + }, + { + "text": "-ac_cc", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "command" + }, + { + "text": "Response (truncated)", + "tagName": "h5", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "Search for the part of the response that begins with this string: ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": ">>>>>>>>>", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "The default ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "p2p", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "rpc", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": " ports of our chain are ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "14165", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "14166", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": " respectively.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "p2p", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "rpc", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "response-truncated" + }, + { + "text": "Test komodo-cli", + "tagName": "h4", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "test-komodo-cli" + }, + { + "text": "To interact with this first daemon, use a ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "test-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "test-komodo-cli" + }, + { + "text": " command as follows.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "test-komodo-cli" + }, + { + "text": "Create a Data Directory for the Second Daemon", + "tagName": "h2", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "Create a directory on your machine for the second daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "In this guide, we use a directory named ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "coinData", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": " in the Home directory:", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "Create the data directory for the second daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "Copy the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": " file created for the first daemon to this new data directory.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "Change the values of ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "rpcuser", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "rpcpassword", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "rpcport", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": " in the file ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "~/coinData/HELLOWORLD/HELLOWORLD.conf", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "create-a-data-directory-for-the-second-daemon" + }, + { + "text": "The HELLOWORLD.CONF File", + "tagName": "h5", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "(Change all values shown above on the right side of the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "=", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": " side. In all values above, the chosen values must be different from the values in the first daemon's .conf file.)", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "Add a new line ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "port=", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": " to the file. This value indicates the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "p2pport", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": " used by the second daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "p2pport", + "tagName": "a", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "The value of port should be different from the value of the p2p port for the first daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "the-helloworld-conf-file" + }, + { + "text": "Launch the Second daemon", + "tagName": "h2", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "When launching the second daemon, use the same Antara customization parameters as the first daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "However, now we specify the data directory for the daemon, as well as the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "p2p", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " connection.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "To accomplish this, we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "datadir", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "addnode", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " common launch parameters.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " with the USERNAME for your local node. You can find this value by using the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "echo $USER", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " command in the terminal.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "To interact with the second daemon, add the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "datadir", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " parameter to the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " command:", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "After launching the second daemon, calling ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": " to either of the daemons should report ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "\"connections\":1", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "launch-the-second-daemon" + }, + { + "text": "Using curl", + "tagName": "h2", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "To issue a ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": " call using curl, observe the following example.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "Replace ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": " with the values from the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": " file in the data directory corresponding to the daemon that needs to be queried.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "Alternatively, source the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": " file before using the curl command. Each time you desire to switch daemons, source the ", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": ".conf", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": " file of your target daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "using-curl" + }, + { + "text": "Source the First Daemon's .conf File", + "tagName": "h5", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "source-the-first-daemons-conf-file" + }, + { + "text": "Source the Second Daemon's .conf File", + "tagName": "h5", + "path": "smart-chains/tutorials/creating-a-smart-chain-on-a-single-node", + "closestElementReference": "source-the-second-daemons-conf-file" + } + ], + "smart-chains/tutorials/example-smart-chains": [ + { + "text": "Examples and descriptions of various Smart Chain configurations", + "tagName": "h1", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "The purpose of this document is to give a better understanding of Smart Chain parameters via examples. These chains are grouped simply by the number of parameters used in customizing each. As new parameters are added, the new combinations will be tested and added here.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Please see ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Creating a new Blockchain using Komodo Platform", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Parameters to customize Blockchains created using Komodo Platform", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " if you haven't already.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Creating a new Blockchain using Komodo Platform", + "tagName": "a", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Parameters to customize Blockchains created using Komodo Platform", + "tagName": "a", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "All chains must have at least ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_name", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_supply", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " set. The ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " parameter can be used with any of these chains. If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " is not set, the only effect ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " has is to have the genesis block be mined to the pubkey that has been specified. The parameters ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_name", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " , ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_supply", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " , ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " are not counted when grouping based on the ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Number of parameters", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "The values of parameters other than ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "ac_name", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": " in these examples are completely arbitrary. The names of these example-smart-chains are assigned based on how a chain is customized and its grouping.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "examples-and-descriptions-of-various-smart-chain-configurations" + }, + { + "text": "Number of parameters: 1", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-1" + }, + { + "text": "ac_reward", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward" + }, + { + "text": "1 coin block reward that does not end.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward" + }, + { + "text": "ac_halving", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": "Default block reward of 0.0001 coin; On demand blocks after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": " has no effect unless ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": " is set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving" + }, + { + "text": "ac_decay", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": "Default block reward of 0.0001 coin; On demand blocks after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": " has no effect unless ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": " is set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay" + }, + { + "text": "ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end" + }, + { + "text": "Default block reward of 0.0001 coin; On demand blocks after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end" + }, + { + "text": "Block reward ends at block 25000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end" + }, + { + "text": "ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey" + }, + { + "text": "ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-staked" + }, + { + "text": "1 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-staked" + }, + { + "text": "Chain adjusts difficulty so 90% of blocks are proof of stake, 10% proof of work", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-staked" + }, + { + "text": "It’s important to start staking immediately for high percentages of POS. If too many POW blocks are mined consecutively at the start of the chain, the POW difficulty may increase enough to stop the chain entirely, meaning you can’t send a transaction to staking nodes.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-staked" + }, + { + "text": "Number of parameters: 2", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-2" + }, + { + "text": "ac_reward ac_halving", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving" + }, + { + "text": "5 coin block reward.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving" + }, + { + "text": "Block reward decreases by 50% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving" + }, + { + "text": "ac_reward ac_decay", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay" + }, + { + "text": "ac_reward ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end" + }, + { + "text": "Block reward ends at block 200.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end" + }, + { + "text": "ac_reward ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives 0.25 coin for every mined block.(an additional 5% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 5 coins", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-staked" + }, + { + "text": "100000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-staked" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 2% of blocks are proof of stake, 98% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-staked" + }, + { + "text": "ac_halving ac_decay", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "Default block reward of 0.0001 coin; On demand blocks after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": " have no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay" + }, + { + "text": "ac_halving ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "Default block reward of 0.0001 coin; Blocks are on-demand after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "Block reward ends at block 10000", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": " being set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end" + }, + { + "text": "ac_halving ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": "Default block reward of 0.0001 coin", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 10% of blocks are proof of stake, 90% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": " being set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-staked" + }, + { + "text": "ac_decay ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "Default block reward of 0.0001 coin; Blocks are on-demand after block 128", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end" + }, + { + "text": "ac_decay ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " has no effect without setting ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "Default block reward of 0.0001 coin", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-staked" + }, + { + "text": "ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-staked" + }, + { + "text": "Default block reward of 0.0001 coin", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 5% of blocks are proof of stake, 95% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-staked" + }, + { + "text": "ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Number of parameters: 3", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-3" + }, + { + "text": "ac_reward ac_halving ac_decay", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay" + }, + { + "text": "Block reward decreases by 25% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay" + }, + { + "text": "ac_reward ac_halving ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end" + }, + { + "text": "Block reward decreases by 50% every 2000 blocks", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end" + }, + { + "text": "Block reward ends at block 10000", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end" + }, + { + "text": "ac_reward ac_halving ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "Block reward decreases by 50% every 1440 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "The pubkey address receives an additional 50% of the block reward for each mined block. For example, before the first halving the pubkey address will receive 2.5 coins(50% of 5 coin block reward) for every mined block. After the first halving, the pubkey address will receive 1.25 coins.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "The pubkey address receives an additional 50% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 50 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_halving ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-staked" + }, + { + "text": "1 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-staked" + }, + { + "text": "Block reward decreases by 50% every 2000 blocks", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 10% of blocks are proof of stake, 90% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-staked" + }, + { + "text": "ac_reward ac_decay ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "Block reward ends at block 5000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end" + }, + { + "text": "ac_reward ac_decay ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives 0.5 coin for every mined block(an additional 10% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 10 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_decay ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": " is not set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-staked" + }, + { + "text": "ac_reward ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "50 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives 2.5 coins(an additional 5% of block reward) for every mined block before block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 5 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be pubkey as opposed to pubkeyhash.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-staked" + }, + { + "text": "500000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-staked" + }, + { + "text": "100 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 15000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 60% of blocks are proof of stake, 40% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-staked" + }, + { + "text": "ac_reward ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "1000000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives 1 coin for every mined block.(an additional 10% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 5 coins are created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving ac_decay ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "Default block reward of .0001; Blocks are on-demand after block 128.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "Block reward ends at block 100000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end" + }, + { + "text": "ac_halving ac_decay ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving ac_decay ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "50000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": " have no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": " is not set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 40% of blocks are proof of stake, 60% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-staked" + }, + { + "text": "ac_halving ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "50000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "Default block reward of 0.0001 coin", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "ac_halving\\", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": " has no effect if ``ac_reward` is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-staked" + }, + { + "text": "ac_halving ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "800000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "Default block reward of 0.0001 coin", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 20000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 60% of blocks are proof of stake, 40% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_decay ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Number of parameters: 4", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-4" + }, + { + "text": "ac_reward ac_halving ac_decay ac_end", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end" + }, + { + "text": "1000000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end" + }, + { + "text": "100 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end" + }, + { + "text": "Block reward decreases by 75% every 10000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end" + }, + { + "text": "Block reward ends at block 100000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end" + }, + { + "text": "ac_reward ac_halving ac_decay ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "Block reward decreases 40% every 5000 blocks", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "The pubkey address receives an additional 5% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 0.5 coin(5% of 10 coin block reward) for every mined block. After the first halving, the pubkey address will receive 0.3 coin for every mined block.(5% of 6 coin block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 5 coins", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_halving ac_decay ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-staked" + }, + { + "text": "99999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-staked" + }, + { + "text": "10000 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-staked" + }, + { + "text": "Block reward decreases by 40% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-staked" + }, + { + "text": "ac_reward ac_halving ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward decreases by 50% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward ends at block 60005.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "The pubkey address receives an additional 10% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 1 coin(10% of 10 coin block reward) for every mined block. After the first halving, the pubkey address will receive 0.5 coin for every mined block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 10 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_halving ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "99999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "0.1 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "Block reward decreases by 50% every 5000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 50000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 40% of blocks are proof of stake, 60% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-staked" + }, + { + "text": "ac_reward ac_halving ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "10 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward decreases by 50% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "The pubkey address receives an additional 5% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 0.5 coin(5% of 10 coin block reward) for every mined block. After the first halving, the pubkey address will receive 0.25 coin for every mined block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 5 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward ac_decay ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "70000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "7 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives .07 coin for every mined block.(an additional 1% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 1% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 1 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_decay ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "Block rewards ends at block 12000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 40% of blocks are proof of stake, 60% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_reward ac_decay ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "9000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "10 coin block reward.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives 0.2 coin for every mined block.(an additional 2% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 2% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 2 coins are created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "50 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block rewards ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 33% of blocks are proof of stake, 67% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives 0.5 coin for every mined block(an additional 1% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 1% for every transaction made on the chain. For example, if a transaction sends 100 coins, 1 additional coin is created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving ac_decay ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_halving ac_decay ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Default block reward of .0001 coin.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 25000", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": " have no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": " is not set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 10% of blocks are proof of stake, 90% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_halving ac_decay ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " have no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Number of parameters: 5", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-5" + }, + { + "text": "ac_reward ac_halving ac_decay ac_end ac_perc ac_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "999999 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "100 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward reduces by 25% every 10000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Block reward ends at block 100000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "The pubkey address receives an additional 2% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 2 coins(2% of 100 coin block reward) for every mined block. After the first halving, the pubkey address will receive 1.5 coins for every mined block.(2% of 75 coin block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "Pubkey address receives an additional 2% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 2 coins are created and sent to the pubkey address.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey" + }, + { + "text": "ac_reward ac_halving ac_decay ac_end ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "50000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Block reward decreases by 30% every 5000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Block reward ends at block 100000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 80% of blocks are proof of stake, 20% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-staked" + }, + { + "text": "ac_reward ac_halving ac_decay ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "1 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "500 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward decreases by 75% every 2000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 50% of blocks are proof of stake, 50% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "The pubkey address receives an additional 1% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 5 coins(1% of 500 coin block reward) for every mined block. After the first halving, the pubkey address will receive 1.25 coins for every mined block.(1% of 125 block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 1% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 1 coins are created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward ac_halving ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "100 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "1 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward decreases by 50% every 20000 blocks.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward ends at block 100000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 90% of blocks are proof of stake, 10% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "The pubkey address receives an additional 1% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 0.01 coin(1% of 1 coin block reward) for every mined block. After the first halving, the pubkey address will receive 0.005 coin for every mined block.(1% of 0.5 block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 1% for every transaction made on the chain. For example, if a transaction sends 100 coins, 1 additional coin is created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward ac_decay ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "1000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "5 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward ends at block 10000.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " has no effect without ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " both set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 60% of blocks are proof of stake, 40% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives 0.5 coin for every mined block.(an additional 10% of block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 10% for every transaction made on the chain. For example, if a transaction sends 100 coins, 10 additional coin is created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving ac_decay ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_halving", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " and ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_decay", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " have no effect if ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "If ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is set, ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " must be set also. This chain does not work at all because ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " is not set.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Number of parameters: 6", + "tagName": "h2", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "number-of-parameters-6" + }, + { + "text": "ac_reward ac_halving ac_decay ac_end ac_perc ac_pubkey ac_staked", + "tagName": "h3", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "100000000 coin premine", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "1000 coin block reward", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward decreases by 25% every 100000 blocks", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Block reward ends at block 1000000", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Chain adjusts difficulty so 1% of blocks are proof of stake, 99% proof of work.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "The pubkey address receives an additional 0.5% of the block reward for each mined block. For example, before the first halving, the pubkey address will receive 5 coins(0.5% of 1000 coin block reward) for every mined block. After the first halving, the pubkey address will receive 3.75 coins for every mined block.(0.5% of 750 block reward)", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "Pubkey address receives an additional 0.5% for every transaction made on the chain. For example, if a transaction sends 100 coins, an additional 0.5 coin are created and sent to the pubkey address. This includes the additional verification transaction in POS blocks, meaning the pubkey address receives more coins for every POS block.", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "ac_perc", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " chains are currently incompatible with z-nomp. The coinbase transaction vout type must be ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": " as opposed to ", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": "pubkeyhash", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + }, + { + "text": ".", + "tagName": "li", + "path": "smart-chains/tutorials/example-smart-chains", + "closestElementReference": "ac-reward-ac-halving-ac-decay-ac-end-ac-perc-ac-pubkey-ac-staked" + } + ], + "smart-chains/tutorials/get-new-pubkey": [ + { + "text": "Get a new pubkey to launch a Smart Chain", + "tagName": "h1", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "get-a-new-pubkey-to-launch-a-smart-chain" + }, + { + "text": "Generate a new address", + "tagName": "h2", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Get the pubkey value using ", + "tagName": "h2", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress", + "tagName": "h2", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "validateaddress" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "validateaddress" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "validateaddress" + }, + { + "text": "Get the private key (WIF)", + "tagName": "h2", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "Command:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "Output:", + "tagName": "p", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "get-the-private-key-wif" + }, + { + "text": "Summary of the relevant data collected", + "tagName": "h2", + "path": "smart-chains/tutorials/get-new-pubkey", + "closestElementReference": "summary-of-the-relevant-data-collected" + } + ], + "smart-chains/tutorials": [ + { + "text": "Introduction to Smart Chain Tutorials", + "tagName": "h1", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "Welcome to the Komodo Smart Chain tutorial documentation.", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "This section contains tutorials that are specifically designed only for the essential aspects of Smart Chain software. These tutorials often focus on technology that is available to Komodo via upstream technologies, such as Bitcoin or Zcash.", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "For tutorials regarding other Komodo software, such as ", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "Antara", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": ", which focuses on Komodo enhancement technologies, or ", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": ", which offers cross-chain atomic-swap compatibility, please see their respective documentation centers.", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "For a targeted learning approach to Komodo's Smart Chain software, please see the ", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "Learning Launchpad", + "tagName": "a", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + }, + { + "text": "ToC for this section:", + "tagName": "p", + "path": "smart-chains/tutorials", + "closestElementReference": "introduction-to-smart-chain-tutorials" + } + ], + "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough": [ + { + "text": "Multisignature Transaction Creation and Walkthrough", + "tagName": "h1", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "multisignature-transaction-creation-and-walkthrough" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "Multisignature (multisig) is a technology used to increase the number of signatures required for a transaction from an address. This provides an additional layer of security to cryptocurrency transactions.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "In this guide we demonstrate the creation and usage of a ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "2of2", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": " multisignature wallet. We use two nodes with the KMD main chain.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "To accomplish the same task on another Komodo Smart Chain, add ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "-ac_name=NAMEOFCHAIN", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": " to each command.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "introduction" + }, + { + "text": "Get a New Address, Public Key, and Private Key", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-a-new-address-public-key-and-private-key" + }, + { + "text": "Create addresses on two nodes. We will combine these two addresses into a single multisig address.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-a-new-address-public-key-and-private-key" + }, + { + "text": "Node One", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "node-one" + }, + { + "text": "Generate a New Address", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "generate-a-new-address" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response" + }, + { + "text": "Get the Public Key Using validateaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-the-public-key-using-validateaddress" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-2" + }, + { + "text": "Get the Private Key", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-the-private-key" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-3" + }, + { + "text": "A Summarization of Data from Node One", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "a-summarization-of-data-from-node-one" + }, + { + "text": "Node Two", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "node-two" + }, + { + "text": "Follow the same steps.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "node-two" + }, + { + "text": "Generate a New Address", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "generate-a-new-address-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-4" + }, + { + "text": "Get the Pubkey Value Using validateaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-the-pubkey-value-using-validateaddress" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-5" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-5" + }, + { + "text": "Get the Private Key", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "get-the-private-key-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-6" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-6" + }, + { + "text": "Summarization of Data From Node Two", + "tagName": "h4", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "summarization-of-data-from-node-two" + }, + { + "text": "Create a Multisig Address", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "Combine the pubkeys to create a ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "2of2", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " multisig address.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "A ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "2of2", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " address requires that both addresses sign for every transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "You can customize the signature requirements for essentially any combination. For example, you can make a ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "3of5", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " multisig address that requires ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "3", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " of ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "5", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " available addresses for each transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "Execute the following command on either node. The command returns the ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "redeemScript", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": " json object, which is required to spend funds.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-a-multisig-address" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-7" + }, + { + "text": "Fund the multisig Address", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "fund-the-multisig-address" + }, + { + "text": "Fund the multisig address.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "fund-the-multisig-address" + }, + { + "text": "(You may use either node.)", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "fund-the-multisig-address" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-8" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-8" + }, + { + "text": "Create the Raw Transaction", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "As input we use the unspent vout of the transaction used to create the multisig address. We also place our desired target destination address in the transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "In this example, we send the full ", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "7.77", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": " sum to the destination address.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "If you do not want to send the full amount, you must manually specify the \"change\" address and state how much of the change you desire to keep.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "Recall that any amount taken from the initial utxo and not included in either the destination address, or in the change address, will automatically be given to the miners as a mining fee.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "create-the-raw-transaction" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-9" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-9" + }, + { + "text": "Sign the Raw Transaction", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "sign-the-raw-transaction" + }, + { + "text": "Sign the raw transaction using both nodes.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "sign-the-raw-transaction" + }, + { + "text": "Sign Using Node One", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "sign-using-node-one" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-10" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-10" + }, + { + "text": "Sign Using Node Two", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "sign-using-node-two" + }, + { + "text": "Use the hex value from node one, but change the privkey to the privkey of node two's address.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "sign-using-node-two" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-11" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-11" + }, + { + "text": "Broadcast the transaction", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "Broadcast the raw hex to finish send the transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "broadcast-the-transaction" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "command-12" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-12" + }, + { + "text": "The above is the output txid which can be used in an online KMD block explorer to verify the transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "response-12" + }, + { + "text": "Useful Links", + "tagName": "h2", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "useful-links" + }, + { + "text": "Detailed Article in the Russian Language", + "tagName": "li", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "useful-links" + }, + { + "text": "Detailed Article in the Russian Language", + "tagName": "a", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "useful-links" + }, + { + "text": "Multisig Web Tool", + "tagName": "li", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "useful-links" + }, + { + "text": "Multisig Web Tool", + "tagName": "a", + "path": "smart-chains/tutorials/multisignature-transaction-creation-and-walkthrough", + "closestElementReference": "useful-links" + } + ], + "smart-chains/tutorials/publish-download-files-dexp2p": [ + { + "text": "How to publish and download files using the DEXP2P layer", + "tagName": "h1", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish-and-download-files-using-the-dexp-2-p-layer" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "The two methods ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_subscribe", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " can be used to broadcast and download files from the \"data mempool\" of the DEXP2P network of a Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_subscribe", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_publish", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " method utilizes datablobs to", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_publish", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "1) Indicate to the network that a file is published", + "tagName": "h3", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "This datablob contains the ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " of the sender, the name of the file published, its SHA256 hash, its size, number of datablobs that have been used to send all the data of the file to the network (fragments); the datablobs of this type can be found using their ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": ", which is set to ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "files", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "Command to filter the datablobs to get information on all the files published and available on the network", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " is a JSON array. In it, we can see only one JSON. It means that, there is only ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " file that is currently published and available on the network. In that JSON, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " is ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "files", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": ", which we filtered for. The rest of the relevant keys are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"tagB\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"roadmap2020.pdf\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "; it is the name of the file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " of the publisher", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"8ed81c26721dcce7bfd1a811f301ec84a2f79389ab86cb45e481ab3f5f40f85d\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "; it is the SHA256 hash of the file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"0.02049320\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "; the value encodes the size of the file; to get the size in bytes, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"amountB\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "\"0.00000205\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "; the value encodes the number of datablobs used to broadcast the file; to get the number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-file-is-published" + }, + { + "text": "2) Publish the actual data of the file", + "tagName": "h3", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "The method then splits the file's data into fragments and broadcasts each fragment using a datablob. These datablobs have ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " as the filename and ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " as the word ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "data", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "Command to filter the datablobs to get the datablobs that contains the data of a published file whose name is ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "roadmap2020.pdf", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "node.position.start.linenode.position.start.line\nThe value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " is a JSON array. The length of the array is ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "205", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": ", same as the number of fragments as indicated by the previous datablob (file info datablob). In it, we can see a datablob that contains data from the published file. In the JSON that represents the datablob, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " is the file name and ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " is the word ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "data", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": ", which we filtered for. The rest of the relevant keys are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " of the publisher", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "the value of the key named ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " contains the the actual data of the file broadcasted using this datablob;", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "\"0.00000201\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "; the value encodes the fragment number of the data stored in this datablob; to get the fragment number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-file" + }, + { + "text": "3) Inform the network about the ids of the datablobs that contain the actual file data", + "tagName": "h3", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "This is done by broadcasting a datablob that contains this information. This datablob has ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " as the filename and ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " as the word ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "Command to filter the datablobs to get the datablob that contains the locators information of a published file whose name is ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "roadmap2020.pdf", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " is a JSON array. In it, we can see the datablob that contains the locators information about the published file. In the JSON that represents the datablob, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " is the file name and ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " is the word ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "locators", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": ", which we filtered for. The rest of the relevant keys are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " of the publisher", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "the value of the key named ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " contains the ids of all the datablobs that have the actual data of the file;", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"0.02049320\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "; the value encodes the size of the file; to get the size in bytes, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"amountB\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "\"0.00000205\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "; the value encodes the number of datablobs used to broadcast the file; to get the number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "After a file is published, any node on the network can issue the ", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "DEX_subscribe", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": " RPC to construct the file from the datablobs available in its RAM", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "DEX_subscribe", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-file-data" + }, + { + "text": "How to Publish", + "tagName": "h2", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Follow the installation instructions ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "here", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " to install Komodo", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Navigate to the directory ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "komodo/src", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " and launch the Smart Chain to be used to Publish the file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Copy and Paste the file that needs to be published into the directory where the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "komodod", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " binary used to launch the Smart Chain is present", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Make sure the file's name is less than ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "15", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " characters", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Open another terminal and issue the following command to publish the file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "In the above command, replace the text ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " with the name of the Smart Chain and the text ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": " with the name of the file to be published", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "Wait for the prompt to be freed and available to you; you have successfully published a file to the DEXP2P network of your desired Smart Chain", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-publish" + }, + { + "text": "How to \"Download\"", + "tagName": "h2", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Follow the installation instructions ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "here", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " to install Komodo", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Navigate to the directory ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "komodo/src", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " and launch the Smart Chain from whose ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEXP2P", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " network a file needs to be downloaded.", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Wait a little while after launching the chain to give your node time to synchronise with the network and receive datablobs. You can check if your node is receiving datablobs by using the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_stats", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " command", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_stats", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Open another terminal and issue the following command to get a list of all the files available", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "In the above command, replace the text ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " with the name of the Smart Chain", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "Observe the key named ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "\"matches\"", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " in the response. Its value is an array of JSON that represent datablobs that contain the details necessary to download the files. Each datablob will have the information needed to download one file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "tagB", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " of a datablob is the file's name and ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " is the pubkey of the sender", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "these two details can be used to download the corresponding file", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "In the above command, replace the text ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " with the name of the file (", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "tagB", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " from the previous ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_list", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " response) and the text ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " with the sender's pubkey (", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " from the previous ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_list", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " response)", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "The file will be downloaded to the directory where the ", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": "komodod", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + }, + { + "text": " binary used to launch the Smart Chain is present", + "tagName": "li", + "path": "smart-chains/tutorials/publish-download-files-dexp2p", + "closestElementReference": "how-to-download" + } + ], + "smart-chains/tutorials/running-komodo-software-in-debug-mode": [ + { + "text": "Running Komodo Software in Debug Mode", + "tagName": "h1", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "introduction" + }, + { + "text": "To run Komodo software in debug mode, follow these steps.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "introduction" + }, + { + "text": "Install gdb", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "install-gdb" + }, + { + "text": "Run Komodo Daemon With ", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "gdb", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": " Tool", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "Initiate your daemon using with ", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "gdb -args", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": " as a prefix.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "For example, the below command would initiate the Komodod daemon with mining active and a designated pubkey.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "If you are having trouble initiating komodod in the shell, try use the absolute path to komodod. For example, ", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "/home/$USERNAME/komodo/src/komodod", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "The shell should return the following prompt.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "Execute ", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "run", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": " in the shell to start Komodo in debug mode.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "tool" + }, + { + "text": "Retrieving Backtrace Data", + "tagName": "h2", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "retrieving-backtrace-data" + }, + { + "text": "Whenever komodod crashes, you will again see ", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "retrieving-backtrace-data" + }, + { + "text": "gdb>", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "retrieving-backtrace-data" + }, + { + "text": " as a prompt.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "retrieving-backtrace-data" + }, + { + "text": "To recall the last stages of komodod before the crash, execute the following command.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "retrieving-backtrace-data" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "command" + }, + { + "text": "The returned data can be shared with any Komodo developer to assist in troubleshooting Komodo development.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "command" + }, + { + "text": "Select and highlight all relevant data using the cursor, and then use ", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "command" + }, + { + "text": "CTRL + SHIFT + C", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "command" + }, + { + "text": " to copy to the clipboard.", + "tagName": "p", + "path": "smart-chains/tutorials/running-komodo-software-in-debug-mode", + "closestElementReference": "command" + } + ], + "smart-chains/tutorials/smart-chain-api-basics": [ + { + "text": "Smart Chain API Basics", + "tagName": "h1", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "smart-chain-api-basics" + }, + { + "text": "API Tutorials: Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "The following tutorial can assist in gaining hands-on experience with the essential Smart Chain API.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "In this tutorial, we create two new blockchains, called RT1 & RT2.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "The first blockchain, RT1, demonstrates the fundamental API concepts, such as how to create and utilize a simple test blockchain, how to query a blockchain for data, etc.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "Sidd: Mylo, your original sentence cut off here!", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "The RT2 blockchain demonstrates the creation of a custom application-specific blockchain that", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "For simplicity's sake, we use the blockchain ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "regtest", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": " feature, which allows us to run a blockchain on a single node without having to connect to a network.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "regtest", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "After the tutorial, the developer should be able to repeat the same concepts on live and fully functional Komodo Smart Chains, assuming the Smart Chain in question has the proper CC features enabled.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "api-tutorials-introduction" + }, + { + "text": "Tutorial Topics Outline", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "Topics covered in this tutorial include:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "How to create a simple Smart Chain for testing purposes", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "How to execute a komodo-cli command to query the blockchain for existing data", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "How to execute a curl command for the same purpose", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "Understanding common API methods (\"RPC's\")", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "Understanding common technology concepts in the Komodo ecosystem", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-topics-outline" + }, + { + "text": "Tutorial Prerequisites", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "tutorial-prerequisites" + }, + { + "text": "komodod and komodo-cli", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "The following tutorials assume that you have already ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "compiled the Komodo daemon", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": ", and that you have used the default ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "~/komodo/src", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": " directory as the root Komodo software directory.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "compiled the Komodo daemon", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "As with all software related to ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": ", at the command line we use the terminal-based ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": " software, and the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": " command, to access the daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodod-and-komodo-cli" + }, + { + "text": "Komodo API Fundamentals Tutorial", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "komodo-api-fundamentals-tutorial" + }, + { + "text": "Create a Regtest Blockchain", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "The quickest way to establish your own development environment is to use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "regtest", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": " feature.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "regtest", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "In regtest mode, the daemon creates a blockchain that is almost fully functional, save for a few exceptions. Two of the exceptions are that the chain runs on a single host, and the user instructs the daemon on when and how to perform new blocks (as opposed to receiving new blocks from a decentralized network of miners).", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "The command to create our ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "RT1", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": " regtest chain is as follows:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "create-a-regtest-blockchain" + }, + { + "text": "ac_supply", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "Note the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "-ac_supply=1000", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": " argument. This is the total number of coins we desire when the blockchain spawns.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "For more information, refer to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_supply", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-supply" + }, + { + "text": "ac_name", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "Also note the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "-ac_name=RT1", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": " argument. This is the blockchain ticker name we desire. For more information, refer to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "ac_name", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "ac_name", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "There are many additional parameters that you can explore later in the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "Antara Customizations", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": " documentation.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "Antara Customizations", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "ac-name" + }, + { + "text": "Observe the Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "observe-the-response" + }, + { + "text": "The daemon will return a response similar to the following:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "observe-the-response" + }, + { + "text": "From the response, note the following information:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "observe-the-response" + }, + { + "text": "Smart Chain Supply", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "smart-chain-supply" + }, + { + "text": "We see the 1000 coin initial supply.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "smart-chain-supply" + }, + { + "text": "Configuration File Location", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "This is the location of the configuration file.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "Placing the configuration data here follows the Komodo convention of placing all relevant data for a Smart Chain in a subdirectory contained in the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "~/.komodo/", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": " directory. The new subdirectory for our regtest chain is named after the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "RT1", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": " value we gave to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "ac_name", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": " parameter.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "configuration-file-location" + }, + { + "text": "Relevant RPC Data", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "relevant-rpc-data" + }, + { + "text": "This information is the blockchain name, its network ports used for p2p (13100), and RPC control (13101). The magic number is a number the Komodo daemon uses for network purposes, and the number of coins is informational.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "relevant-rpc-data" + }, + { + "text": "Explanation of All Initial Daemon Output", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "explanation-of-all-initial-daemon-output" + }, + { + "text": "Here is an explanation of all of the output, as it appears in the above response. Many of the actual values will be different on your machine, although the underlying purpose of the value is the same.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "explanation-of-all-initial-daemon-output" + }, + { + "text": "| Value | Description |\n| ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [1] 22892 | the process number; the value is dependent on your machine and will be different |\n| ASSETCHAINS_SUPPLY 1000 | the number of coins when the blockchain initiates for its first time |\n| MAX_MONEY 106320417438 1063.20417438 | this value is not important at this time; it states that 100 billion coins is the maximum possible amount the blockchain can mathematically support |\n| Created (/home/mylo/.komodo/RT1/RT1.conf) | the location of the configuration file |\n| call komodo_args.(./komodod) NOTARY_PUBKEY.() | this value specifies where the new coins from block rewards are sent; by default, the coins will be sent to your node's local wallet |\n| >>>>>>>>>> RT1: p2p.13100 rpc.13101 magic.fd772ab9 4252445369 1000 coins | the blockchain name, its network ports and RPC controls; the magic number is used in Komodo networking and the number of coins derives from the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "explanation-of-all-initial-daemon-output" + }, + { + "text": "ac_supply", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "explanation-of-all-initial-daemon-output" + }, + { + "text": " parameter included at runtime |\n| initialized RT1 at 1555581638 | the time in seconds, past epoch, when the blockchain was initialized |\n| finished loading blocks RT1 | informational |\n| fAddressIndex.0/0 fSpentIndex.0/0 | informational and can be ignored for now |\n| height.0 slowflag.1 possible.1 cmp.0 | informational and can be ignored for now |", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "explanation-of-all-initial-daemon-output" + }, + { + "text": "Querying the Blockchain Using komodo-cli", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-komodo-cli" + }, + { + "text": "With the regtest Smart Chain operational we are prepared to execute our first API call.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-komodo-cli" + }, + { + "text": "Access a Daemon via komodo-cli on a Smart Chain", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "When using ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": " to access the daemon of a Smart Chain, we must add an additional argument to each terminal input.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "This required argument is the name of the Smart Chain for which the user desires ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": " to connect. The name is provided in the same format used to launch the chain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "In our tutorial, the argument is: ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "-ac_name=RT1", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "Furthermore, as we are using the regtest feature, we must also include the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "-regtest", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": " argument with each terminal input.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "Therefore, each ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": " terminal input will begin with the following:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "access-a-daemon-via-komodo-cli-on-a-smart-chain" + }, + { + "text": "Using the getinfo API Method", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": " API method does not require any additional parameters when called and provides useful information about our chain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "To execute the method in the terminal we can use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": " software.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "using-the-getinfo-api-method" + }, + { + "text": "Command", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command" + }, + { + "text": "Response", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "Note the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "blocks", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": " count of zero ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": " and the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "balance", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": " sum of ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": ". While our regtest chain's daemon is operational, we have yet to mine the genesis block and collect the initial coin value.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response" + }, + { + "text": "Querying the Blockchain Using curl", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": "Alternatively, we can execute the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": " method using the Unix ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": " command.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": "getinfo", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "querying-the-blockchain-using-curl" + }, + { + "text": "Sourcing the Configuration File", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": " command will also need information about which Smart Chain daemon the user desires to connect. However, the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": " command will receive these instructions in a different manner.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "The user must provide the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "myrpcuser", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "myrpcpassword", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "myrpcport", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": " values from the Smart Chain's configuration file.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "The configuration file is automatically generated on Smart Chain creation, and is formatted for use with the Unix ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "source", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": " command.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "To import all values into our terminal process environment, execute the following:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "We can test that the variables were loaded correctly with the following commands:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "The terminal should return the values from the configuration file.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "sourcing-the-configuration-file" + }, + { + "text": "Executing the curl Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "With these variables set we can now easily use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " command to execute the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "getinfo", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " API method:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "We execute the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " command with ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "-s", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " silent option; this mutes irrelevant response data.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "$rpcuser:$rpcpassword", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " and the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "...$rpcport", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " arguments utilize our sourced environment variables.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "The HTTP header ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "-H", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "--data-binary", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": ", and ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "content-type: text/plain;", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " arguments instruct ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " to reply with a json object.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "Without further intervention, the returned json response will be unformatted and difficult to read.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "To improve readability, the developer may optionally install and utilize the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "jq", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " terminal software.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "Link to download and install ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "jq", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "Link to download and install ", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "jq", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "Once installed, add a ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "|", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " pipe and a ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " jq '.'", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": " reference at the end of the curl command:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "This should return a well formatted json object.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "executing-the-curl-command" + }, + { + "text": "Preparing Your Local Wallet", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "The wallet is not part of the blockchain. Rather, it is a separate application that tracks your private keys and grants access to them upon user request. This separate application is built into the Komodo daemon and can be accessed using the API.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "Common API commands include the following:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "| Command | Description |\n| ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": " | get a new address |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": " | get the public key of the new address; used often when developing a custom application-specific blockchain |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": " | get the private key of an address |", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "getnewaddress", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "validateaddress", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "dumpprivkey", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "We save details from each response, so that we may avoid continually obtaining new wallet keys.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "The next two sections demonstrate how to obtain a new private key. The first section uses ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": " software, and the second section repeats the same API steps using the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": " command.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-local-wallet" + }, + { + "text": "Preparing Your Wallet Using komodo-cli", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-wallet-using-komodo-cli" + }, + { + "text": "getnewaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": "To obtain a new address, we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": " API method:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": "Your response will be a different address of the same format.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress" + }, + { + "text": "validateaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "To obtain the public key, also called the \"pubkey\", we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "Make a note of the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": " value. We will use it towards the end of the tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress" + }, + { + "text": "dumpprivkey", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "Use the response from ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": " as an argument for the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "dumpprivkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "The response is the private key for this address.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "The private key should never be shared under any circumstances. We have redacted the response for this tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey" + }, + { + "text": "Preparing Your Wallet Using curl", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "preparing-your-wallet-using-curl" + }, + { + "text": "getnewaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": "A ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": " command to obtain a new address using the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": "getnewaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getnewaddress-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-2" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-2" + }, + { + "text": "validateaddress", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": "A ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": " command to obtain the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": " using the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "validateaddress-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-3" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-3" + }, + { + "text": "dumpprivkey", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": "A ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": " command to obtain the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": " using the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": "validateaddress", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "dumpprivkey-2" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-4" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-4" + }, + { + "text": "Generating Blocks and Getting the New Coins", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "When connecting to an existing blockchain that already has a populated network of miners or stakers, the user does not need to be concerned about how blocks are generated.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "However, in this tutorial we are running a regtest chain, and therefore we must instruct the daemon to generate new blocks.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "This also provides us with a useful opportunity to discuss the nature of simple mining in the Komodo ecosystem. The methods we discuss here reflect mining on a proof-of-work based Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "The reader should be aware that Komodo also offers proof-of-stake mining, and hybrid models that blend proof-of-work with proof-of-stake. For more information, the reader may turn to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "ac_staked", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": " feature.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "ac_staked", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "Here are several common API methods for mining:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "| Command | Description |\n| ---------------------------------------------------------- | -------------------------------- |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "generate", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": " | the number of blocks to generate |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": " | query information about a block |\n| ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": " | query a transaction |", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "generate", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "getblock", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "gettransaction", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "In a moment, we will use these commands to generate new blocks on our regtest chain, and in the process of generating, the blockchain will create new coins.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-and-getting-the-new-coins" + }, + { + "text": "Understanding the Coinbase Transaction", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "The reader should be aware of the manner in which a blockchain creates new coins.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "When a blockchain initiates for the first time, and before it has mined the first block, the total sum of coins on the blockchain is always ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "To add coins into the total coin supply, the blockchain must mint new coins. This minting process occurs in a special transaction that is included as the first transaction in each block of the blockchain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "This transaction is called the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "While every other transaction on the blockchain can only take coins from the existing supply, the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " transaction may create new coins from nothing.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "These new coins can be sent to any number of locations. The rules of the blockchain, as set by the blockchain's developer, determine how many coins are minted, and who receives the coins.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "For more information about how to customize your ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " transactions on a Komodo Smart Chain, observe the many different customization parameters in the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "Antara Customizations", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " documentation.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "Antara Customizations", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "For example, read about ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_reward", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_eras", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": ", ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_founders", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": ", and many others.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_reward", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_eras", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "ac_founders", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "In our tutorial, when we mine our first block, all of the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "1000", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " new coins we indicated will be mined in the first block's ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": " transaction. By default, these coins are distributed immediately into our own local wallet.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "understanding-the-coinbase-transaction" + }, + { + "text": "Generating Blocks Using komodo-cli", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-using-komodo-cli" + }, + { + "text": "generate", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate" + }, + { + "text": "We now generate a few blocks using the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate" + }, + { + "text": "generate", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-5" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-5" + }, + { + "text": "The response contains an array of blockhashes. These are the hashes of the blocks generated.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-5" + }, + { + "text": "getblock", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "To inspect the particular information about any given block, we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": " API method and include our desired blockhash as an argument.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "Alternatively, with ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": " we can instead include the desired block ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": " of the block we wish to inspect.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "In our case, we desire to inspect the genesis block, which is the first block ever mined on our Smart Chain. Therefore, the block ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": " will be ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "1", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-6" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "Note in the response the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "tx", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": " value.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "This value is an array containing all transactions performed within this block. Because it is the genesis block, and because we did not send any transactions on our blockchain, the only transaction is our ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": " transaction, wherein the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "1000", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": " coins were minted and sent to our local wallet.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-6" + }, + { + "text": "gettransaction", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction" + }, + { + "text": "To observe this transaction, we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction" + }, + { + "text": "gettransaction", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-7" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": "Note that the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": "amount", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": " value is slightly higher than ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": "1000", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": ". This is normal. It is due to the internal mathematical complexities of a blockchain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-7" + }, + { + "text": "Generating Blocks Using curl", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generating-blocks-using-curl" + }, + { + "text": "generate", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": "We have already generated the genesis block. The following is a sample of using ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": " with the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": "generate", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": " API method to generate 5 blocks.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "generate-2" + }, + { + "text": "getblock", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "Here is a sample of using ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": " with the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": " API method on the blockhash of the genesis block.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "To use the block ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "height", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": " instead, the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": " command is formatted as follows.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "getblock-2" + }, + { + "text": "gettransaction", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": "Here is the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": " command to retrieve the first block's ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "gettransaction-2" + }, + { + "text": "Inspecting the wallet", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "We have generated blocks and received the value from the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": " transactions. Now, we would like to inspect the contents of our wallet. We will execute the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": " method for this purpose.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "However, before we execute this command, the reader should familiarize themselves with the way a blockchain stores value in a wallet. The title of the technical concept to understand is, ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "\"utxo.\"", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": " This stands for \"unspent transaction.\"", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "The way a utxo works is often difficult to understand for newcomers to blockchain technology. We have provided an article that explains this concept in more detail here, and we recommend the reader study it before proceeding.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "The reader may turn to ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "the Core Technology Discussion regarding utxos for more information.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "the Core Technology Discussion regarding utxos for more information.", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "In blockchain technology, all value is contained within utxos. Every transaction consumes a utxo and creates new utxos.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "Once you are comfortably familiar with the concept, you are prepared to continue with the tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "inspecting-the-wallet" + }, + { + "text": "Listing Unspent Transactions Using komodo-cli", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-komodo-cli" + }, + { + "text": "A developer should be able to easily validate ownership of a utxo, as only the owner of a utxo is able to spend it.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-komodo-cli" + }, + { + "text": "listunspent", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "For this purpose, we turn to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": " API method:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "listunspent", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "The response is an array of transactions ids, called ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "txid", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": " for brevity's sake.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listunspent" + }, + { + "text": "Listing Unspent Transactions Using curl", + "tagName": "h3", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": "With ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": ", the terminal command for ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": " is as follows:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "listing-unspent-transactions-using-curl" + }, + { + "text": "Setting the pubkey Parameter", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "Observe this first ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "txid", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " returned from the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "listunspent", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " transaction:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "Notice that the address to which these ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "1000", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " coins were sent is not the address we generated earlier. Rather, it is an entirely new address. At the moment we may not mind, because the coins were sent to an address that the wallet automatically generated and which we own.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "However, what if we want to control the address to which coins are sent when mining? When this is the case, we turn to the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " launch parameter.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "pubkey", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " we input into this parameter can be the same ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": " we generated earlier in the tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "setting-the-pubkey-parameter" + }, + { + "text": "Stopping the Daemon Using komodo-cli", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": "To place this pubkey at startup, we must first stop the Smart Chain.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": "For this we use the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": "stop", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": " API method.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": "stop", + "tagName": "a", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-komodo-cli" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-8" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-8" + }, + { + "text": "Stopping the Daemon Using curl", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-curl" + }, + { + "text": "Using ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-curl" + }, + { + "text": "curl", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-curl" + }, + { + "text": " to stop the daemon.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "stopping-the-daemon-using-curl" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-9" + }, + { + "text": "Response", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "response-9" + }, + { + "text": "Restarting the Smart Chain With the pubkey Parameter", + "tagName": "h4", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": "Execute the following to relaunch ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": "komodod", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": " with the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": " we saved at the beginning of the tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "restarting-the-smart-chain-with-the-pubkey-parameter" + }, + { + "text": "Command", + "tagName": "h5", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "Now, when we generate new blocks, the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " transaction sends new coins to the new address associated with our ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "First, we generate a new block using komodo-cli.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "Response:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "We can repeat the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "getblock", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " method on the blockhash returned above to see the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "With that ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " transaction, we can the execute ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "gettransaction", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " to see the address to which the new coins were sent.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "After executing these previously explained methods, here is a snippet of the final result:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "Note that the ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "address", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": " in this output is the one associated with our desired ", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "command-10" + }, + { + "text": "Closing", + "tagName": "h2", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "Some of the fundamental blockchain and API skills we have learned include the following:", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "How to create a new Komodo Smart Chain", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "How to make a single-node regtest chain, for development purposes", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "How to launch with the pubkey set", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "How to generate new blocks", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "How to obtain information about blocks and transactions", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "The nature of a utxo", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "The nature of a coinbase transaction", + "tagName": "li", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + }, + { + "text": "Having completed this tutorial, the developer should be able to explore the many API methods in the Komodo documentation.", + "tagName": "p", + "path": "smart-chains/tutorials/smart-chain-api-basics", + "closestElementReference": "closing" + } + ], + "smart-chains/tutorials/streaming-dexp2p": [ + { + "text": "How to stream and playback a video file using the DEXP2P layer of a Smart Chain", + "tagName": "h1", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream-and-playback-a-video-file-using-the-dexp-2-p-layer-of-a-smart-chain" + }, + { + "text": "This tech is in development. The\n", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream-and-playback-a-video-file-using-the-dexp-2-p-layer-of-a-smart-chain" + }, + { + "text": "DEX_streamsub", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream-and-playback-a-video-file-using-the-dexp-2-p-layer-of-a-smart-chain" + }, + { + "text": " method works well\nin small dedicated DEXP2P networks with fast nodes. It will be further\ndeveloped to increase its reliability in larger networks. The specifics of the\nimplementation are subject to change. This document is a Work In Progress.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream-and-playback-a-video-file-using-the-dexp-2-p-layer-of-a-smart-chain" + }, + { + "text": "DEX_streamsub", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream-and-playback-a-video-file-using-the-dexp-2-p-layer-of-a-smart-chain" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "The two methods ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_stream", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " and ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_streamsub", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " can be used to broadcast and download files from the \"data mempool\" of the DEXP2P network of a Smart Chain. Consult the RPC description pages for the two methods before going through this tutorial.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_stream", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_streamsub", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "The ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_stream", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": " method utilizes datablobs to", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "DEX_stream", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "introduction" + }, + { + "text": "1) Indicate to the network that a slice is published", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "This datablob contains the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " of the sender, the name of the file published, its SHA256 hash, its size, number of datablobs that have been used to send all the data of the file to the network (fragments); the datablobs of this type can be found using their ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": ", which is set to ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "files", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": ".", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "Command to filter the datablobs to get information on all the slices published and available on the network", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " is a JSON array. In it, we can see JSON of datablobs representing all the slices of different files available on the network . In each JSON, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " is ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "slices", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": ", which we filtered for. The rest of the relevant keys from the example are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"tagB\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"17-53-21.mkv\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; it is the name of the file being streamed", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " of the streamer of the file", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"f957d82bdd4fea7b38e28a2f949def308a4db4bcfa6eb9d30b6578c4709db615\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; it is the SHA256 hash of the slice", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"0.00000000\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; the value encodes the size of the file being streamed (in bytes) that exists before this slice", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"amountB\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "\"0.00000100\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; the value encodes the number of datablobs used to broadcast the slice; to get the number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "; this value is the same for all the slices", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-indicate-to-the-network-that-a-slice-is-published" + }, + { + "text": "2) Publish the actual data of the slice", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "The method then splits the slice's data into fragments and broadcasts each fragment using a datablob. These datablobs have ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " as the filename and ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " as the word ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "data", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "Command to filter the datablobs to get all the datablobs that contain the data of a published file whose name is ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "17-53-21.mkv", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " is a JSON array. The length of the array must be a multiple of ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "100", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": ", as each slice is broken into ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "100", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " fragments as indicated by the previous datablob (slice info datablob). The datablob shown in the above example contains data from the published file. In the JSON that represents the datablob, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " is the file name and ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " is the word ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "data", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": ", which we filtered for. The rest of the relevant keys are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " of the publisher", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "the value of the key named ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " contains the the actual data of the slice broadcasted using this datablob;", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "\"0.00000099\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "; the value encodes the fragment number of the data stored in this datablob; to get the fragment number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-publish-the-actual-data-of-the-slice" + }, + { + "text": "3) Inform the network about the ids of the datablobs that contain the actual slice data", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "This is done by broadcasting a datablob that contains this information. This datablob has ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " as the filename and ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " as the slice number", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "Command to filter the datablobs to get the datablob that contains the information about the ids of datablobs that contain the actual data of slice number ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "0", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " of a file being streamed whose name is ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "17-53-21.mkv", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "The value of the key named ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"matches\"", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " is a JSON array. In it, we can see the datablob that contains the locators information about the published file. In the JSON that represents the datablob, we can see that ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "tagA", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " is the file name and ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " is the slice number, which we filtered for. The rest of the relevant keys are as follows", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"pubkey\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"01e28518858aa3515163a67deee2b19f0d30e4fa237f0aec255e4c94db0fe8d063\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "; it is the ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "DEX_pubkey", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " of the file streamer", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "the value of the key named ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"decrypted\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " contains the ids of all the datablobs that have the actual data of the slice;", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"amountA\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"0.01000000\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "; the value encodes the size of the slice; to get the size in bytes, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "; a slice is always ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "1 MB", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " in size", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"amountB\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " set to ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "\"0.00000100\"", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "; the value encodes the number of datablobs used to broadcast the slice; to get the number, multiply the value with ", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "10^8", + "tagName": "li", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "After the streaming of a file is started, any node on the network can issue the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "DEX_streamsub", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": " RPC repeatedly to assemble the file from the datablobs available in its RAM", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "DEX_streamsub", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-inform-the-network-about-the-ids-of-the-datablobs-that-contain-the-actual-slice-data" + }, + { + "text": "How to stream", + "tagName": "h2", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream" + }, + { + "text": "In this section, we will describe how to stream a video file using the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream" + }, + { + "text": "DEXP2P", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream" + }, + { + "text": " layer. You can use an alternative setup, but we describe what we have tested and works.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-stream" + }, + { + "text": "1) Install and configure OBS", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "We need a software that can record video with either the webcam or your desktop as the source. We chose ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "OBS", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": " as it is multi platform, easy to use and most importantly, ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "open source", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "OBS", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "open source", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "You can install OBS for your OS by following the instructions here: ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "https://obsproject.com/download", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "https://obsproject.com/download", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "Once it is installed, launch the program and set the output format of a recording to ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "mkv", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": " from ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "Settings > Output > Recording > Recording Format > mkv", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "In the same tab, set the \"Recording path\" to the directory your Komodo daemon that will be used to launch the Smart Chain is present. If you have compiled it yourself, the Komodo daemon should be present in the directory ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "komodo/src", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "Also, tick the checkbox that says \"Generate File Name without Space\"", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "The final settings should look similar to the ones in the above image.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "After that, navigate to ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "Settings > Advanced > Recording > Filename Formatting", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": " and change the format to one that will produce file names that are less than ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "15 characters", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": " in length. We recommend you to use ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "%hh-%mm-%ss", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": ", it sets the name of the file as the time (in ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "hour-minute-seconds", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": " format) at which the recording was started.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "The settings should look similar to the ones in the above image.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-install-and-configure-obs" + }, + { + "text": "2) Create a script to loop the DEX_stream command", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-create-a-script-to-loop-the-dex-stream-command" + }, + { + "text": "In the directory where the Komodo daemon is located, create a script named ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-create-a-script-to-loop-the-dex-stream-command" + }, + { + "text": "stream.sh", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-create-a-script-to-loop-the-dex-stream-command" + }, + { + "text": " with the following contents and save the file.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-create-a-script-to-loop-the-dex-stream-command" + }, + { + "text": "Make the file executable by issuing the following command", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "2-create-a-script-to-loop-the-dex-stream-command" + }, + { + "text": "3) Launch the Smart Chain and Start Streaming", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "Launch the Smart Chain designated for DEXP2P streaming. Installation instructions are ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "here", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "here", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "Example:", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "Open OBS and select a source to record. To start recording, click the \"Start Recording button\". This should result in a file being created in the same directory the Komodo daemon is present. This file should be increasing in size as more data is recorded into it.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "Start the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "stream.sh", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": " script with the Smart Chain's name and the file's name as arguments", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "You should see slices of the file being published as they become available. You can ignore the warnings that say \"Not enough data to extend the stream\". Hit ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "CTRL + C", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": " in the same terminal to exit the script and stop streaming.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "3-launch-the-smart-chain-and-start-streaming" + }, + { + "text": "How to watch a stream", + "tagName": "h2", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-watch-a-stream" + }, + { + "text": "To watch a stream, you must launch the same Smart Chain whose DEXP2P network is being used to broadcast it. So, find the details from the streamer.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "how-to-watch-a-stream" + }, + { + "text": "1) Create a script to loop the DEX_streamsub command", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-create-a-script-to-loop-the-dex-streamsub-command" + }, + { + "text": "In the directory where the Komodo daemon is located, create a script named ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-create-a-script-to-loop-the-dex-streamsub-command" + }, + { + "text": "streamsub.sh", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-create-a-script-to-loop-the-dex-streamsub-command" + }, + { + "text": " with the following contents and save the file.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-create-a-script-to-loop-the-dex-streamsub-command" + }, + { + "text": "Make the file executable by issuing the following command", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "1-create-a-script-to-loop-the-dex-streamsub-command" + }, + { + "text": "2) Find the ", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_pubkey", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " of the publisher and name of the file", + "tagName": "h3", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "You can either get the details from the streamer directly or you can use the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_list", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " command to filter all the datablobs available to find the details of the stream you are interested in.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_list", + "tagName": "a", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "To find all the streams being broadcast right now, issue the following command:", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "In the matches, the values of ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "tagB", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " of each JSON is the mae of the file. If you know the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " but not the file name, you can use the following command to display the files published by your favorite streamer", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "Once you know the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " of the publisher and the file' name you can start the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "streamsub.sh", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " script with the Smart Chain's name, the file's name and the ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "DEX_pubkey", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " of the streamer as arguments", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "You should see slices of the file being downloaded as they become available. The file will be downloaded and assembled in the same directory the Komodo daemon is located .You can ignore the warnings that say \"id not found\" or similar as long as the file being downloaded is increasing in size. Hit ", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "CTRL + C", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": " in the same terminal to exit the script and stop downloading.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + }, + { + "text": "The file can be played while it is increasing in size using the VLC media player. You might use another video player if it supports playing a file that is increasing in size.", + "tagName": "p", + "path": "smart-chains/tutorials/streaming-dexp2p", + "closestElementReference": "of-the-publisher-and-name-of-the-file" + } + ], + "start-here/about-komodo-platform": [ + { + "text": "Komodo Platform Overview", + "tagName": "h1", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "After years of innovation and development, Komodo's multi-chain architecture overcomes the challenges faced by other smart-contract platforms.", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "The philosophy behind Komodo's multi-chain architecture relies on four pillars.", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "Security", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "Scalability", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "Interoperability", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "Adaptability", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "With these four pillars in place, users of all types will find powerful, customizable solutions that will set your blockchain creativity free.", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodo-platform-overview" + }, + { + "text": "Security", + "tagName": "h2", + "path": "start-here/about-komodo-platform", + "closestElementReference": "security" + }, + { + "text": "Approximately every half hour, a hash of the developers blockchain is notarized to Litecoin", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "security" + }, + { + "text": "All transactions included in the hash are considered to have achieved finality", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "security" + }, + { + "text": "For the consensus mechanism, arbitrarily choose between a mixture of Proof-of-Work and Proof-of-Stake", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "security" + }, + { + "text": "Scalability", + "tagName": "h2", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "Developers and their users can securely own a full Smart Chain", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "Each Smart Chain is completely autonomous", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "If your project grows beyond the capacity of a single chain, simply add more", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "Scale your maximum transaction-per-second throughput into the millions, if desired", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "No gas fees. All transaction fees are paid in your Smart Chain’s coin", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "scalability" + }, + { + "text": "Interoperability", + "tagName": "h2", + "path": "start-here/about-komodo-platform", + "closestElementReference": "interoperability" + }, + { + "text": "Komodo’s Multi-Chain Syncing feature allows you to scale out linearly on demand", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "interoperability" + }, + { + "text": "Smart Chains can verify and update local state based on the activity of compatible Smart Chains", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "interoperability" + }, + { + "text": "Transfer assets and tokens between compatible Smart Chains", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "interoperability" + }, + { + "text": "Use Komodo's atomic-swap DEX software to trade your Smart Chain assets with Non-Smart assets.", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "interoperability" + }, + { + "text": "Adaptability", + "tagName": "h2", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "Twenty-four different launch parameters are available to customize the functionality of your Smart Chain", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "Rely on the Antara framework to fully customize your Smart Chain with unique and arbitrary code within the consensus mechanism", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "Share and adopt code in Komodo's open-source community", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "Dispose of Smart Chains that become data-weight heavy, or transfer them to fresh Smart Chains for ease of use", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "No need for a virtual machine (VM) nor a VM-based programming language", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "adaptability" + }, + { + "text": "Together, the Komodo Platform is Unlike Anything Else", + "tagName": "h3", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "With the Komodo architecture at your command, you are prepared to lift your Smart Chain software to levels never before seen in the blockchain industry. And, the innovation of the ", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "Komodo SDK", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": " makes connecting to the wider crrypto ecosystem a breeze, offering crooss-chain/cross-protocol DEX capabilities and non-custodial wallet solutions ", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "with just a few lines of config", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "Komodo SDK", + "tagName": "a", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "with just a few lines of config", + "tagName": "a", + "path": "start-here/about-komodo-platform", + "closestElementReference": "together-the-komodo-platform-is-unlike-anything-else" + }, + { + "text": "Komodo's White-Label Software Brings Your Innovation to Market Faster", + "tagName": "h3", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "The Komodo Platform offers many free white-label applications that can help you bring your innovation to market faster.", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "Atomic-Swap powered Decentralized Exchange & Multi-Asset Wallet", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "Decentralized-Crowdfunding App", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "Custom Block Explorers", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "SPV Electrum Server Integration", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "Core Antara Modules", + "tagName": "li", + "path": "start-here/about-komodo-platform", + "closestElementReference": "komodos-white-label-software-brings-your-innovation-to-market-faster" + }, + { + "text": "Installing, Using, and Testing Komodo Software is Free", + "tagName": "h3", + "path": "start-here/about-komodo-platform", + "closestElementReference": "installing-using-and-testing-komodo-software-is-free" + }, + { + "text": "The best way to learn about Komodo is to use it for yourself.", + "tagName": "p", + "path": "start-here/about-komodo-platform", + "closestElementReference": "installing-using-and-testing-komodo-software-is-free" + } + ], + "start-here/about-komodo-platform/orientation": [ + { + "text": "Documentation Orientation", + "tagName": "h1", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "documentation-orientation" + }, + { + "text": "The following section answers common questions a newcomer may have, and prepares the new reader for the installation procedure.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "documentation-orientation" + }, + { + "text": "Intended Audience of this Technical Documentation Website", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": "This website is targeted for developers in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": "Users who are not interested in developing Komodo-based software, but only in using existing software, should instead turn to the ", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": "support section of the Komodo forum", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": " for questions and answers.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": "support section of the Komodo forum", + "tagName": "a", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "intended-audience-of-this-technical-documentation-website" + }, + { + "text": "Assumptions for this Documentation", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "assumptions-for-this-documentation" + }, + { + "text": "To limit the scope of what we cover on the technical-documentation website, we list the following prerequisite knowledge.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "assumptions-for-this-documentation" + }, + { + "text": "Familiarity with the Concept of Blockchain Technology", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": "The reader should be generally familiar with the basic concept of blockchain technology and why it matters. If you're not yet familiar, we recommend that you first read our Core Technology Discussion regarding our ", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": "Delayed Proof of Work", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": " consensus mechanism.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": "Link to Core Technology Discussion: Delayed Proof of Work", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": "Link to Core Technology Discussion: Delayed Proof of Work", + "tagName": "a", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "familiarity-with-the-concept-of-blockchain-technology" + }, + { + "text": "Simple Programming Skills", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Much of the content on this site will be more understandable for the reader who has a rudimentary understanding of a mainstream programming language.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Beginner-level knowledge should be sufficient for the majority of the site. For example, the reader should be able to:", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Execute commands on the command line", + "tagName": "li", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Utilize an Application Programming Interface (API)", + "tagName": "li", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Write and execute a rudimentary script in any mainstream language", + "tagName": "li", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "If you do not have these prerequisite experiences, we encourage you to reach out to our community on ", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Discord.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": " There are thousands of free tutorials online that can help you quickly cover these topics. We will be happy to help you in your search.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "Discord.", + "tagName": "a", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "simple-programming-skills" + }, + { + "text": "A Note Regarding Komodo Language Compatibility", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-note-regarding-komodo-language-compatibility" + }, + { + "text": "Komodo is a highly capable blockchain technology, and it is designed for compatibility with essentially all mainstream programming languages. However, not all developers will need to use its most advanced aspects.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-note-regarding-komodo-language-compatibility" + }, + { + "text": "A Normal Developer in the Komodo Ecosystem", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-normal-developer-in-the-komodo-ecosystem" + }, + { + "text": "A typical developer in the Komodo ecosystem will build all their application logic in a separate application that runs outside of their Smart Chain daemon.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-normal-developer-in-the-komodo-ecosystem" + }, + { + "text": "The developer's software will send API requests to their Smart Chain's daemon to update the blockchain state and take advantage of Komodo's default Antara Modules. (Antara Modules provide functionality similar to the \"smart contracts\" that are common on other platforms. However, we argue that Antara Modules are dramatically more powerful.)", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-normal-developer-in-the-komodo-ecosystem" + }, + { + "text": "For this developer, any programming language that is capable of sending API requests to the software daemon is compatible.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "a-normal-developer-in-the-komodo-ecosystem" + }, + { + "text": "An Advanced Antara Developer", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "an-advanced-antara-developer" + }, + { + "text": "A highly advanced developer may be interested to take advantage of the full potential of Komodo technology.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "an-advanced-antara-developer" + }, + { + "text": "This developer can utilize Komodo's Antara Framework to add arbitrary code to the consensus mechanism of their autonomous Smart Chain.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "an-advanced-antara-developer" + }, + { + "text": "Although the Antara Framework can be compatible with essentially all mainstream programming languages, at this time we encourage developers to stay close to the C/C++ languages.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "an-advanced-antara-developer" + }, + { + "text": "The Cost of a Smart Chain", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "the-cost-of-a-smart-chain" + }, + { + "text": "Installation and Testing is Free", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "installation-and-testing-is-free" + }, + { + "text": "Creating and experimenting with Komodo Smart Chains is completely free. Even for Production Smart Chains, hardware needed to run the Smart Chains and the other essential associated infrastructure like Electrum servers, Explorers is the only expense if you are doing everything by yourself.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "installation-and-testing-is-free" + }, + { + "text": "Production Smart Chains Typically Require Komodo Security Services", + "tagName": "h3", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "If your Smart Chain is pure PoW based and doesn't include greater than 50% ", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "PoS", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": " based block generation, it is only truly secure once it receives the Komodo dPoW Security Service.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "PoS", + "tagName": "a", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "Please reach out to our bizdev team for a cost quote on our ", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "Discord", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": " live-chat server. Their usernames are:", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "Discord", + "tagName": "a", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "ptyx#6840", + "tagName": "li", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "polycryptoblog#1173", + "tagName": "li", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "production-smart-chains-typically-require-komodo-security-services" + }, + { + "text": "The Cost of Using Komodo DeFi Framework Software", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "the-cost-of-using-komodo-de-fi-framework-software" + }, + { + "text": "Currently, there are no additional costs for Komodo DeFi Framework beyond the fees listed for each trade.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "the-cost-of-using-komodo-de-fi-framework-software" + }, + { + "text": "Differences between KMD and a Smart Chain", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "differences-between-kmd-and-a-smart-chain" + }, + { + "text": "The main KMD blockchain runs on the same underlying framework as all Smart Chains in the ecosystem, but not all features are active on the KMD blockchain.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "differences-between-kmd-and-a-smart-chain" + }, + { + "text": "The KMD chain's active features include Bitcoin-hash rate supported security and the ability to execute Antara Modules. Other features, such as zero-knowledge privacy, are disabled.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "differences-between-kmd-and-a-smart-chain" + }, + { + "text": "This limitation is intentional. The KMD chain holds all the meta data of the ecosystem. By keeping the functionality limited, Komodo discourages rapid data growth on this central blockchain.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "differences-between-kmd-and-a-smart-chain" + }, + { + "text": "All other Smart Chains in the ecosystem are fully customizable.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "differences-between-kmd-and-a-smart-chain" + }, + { + "text": "Licensing Information", + "tagName": "h2", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "licensing-information" + }, + { + "text": "All technical-documentation content on this website can be considered to be available under the MIT standard license. Some of the content, including many of the remote procedure call (RPC) documentation that relates to upstream software, such as Bitcoin and Zcash, is derived from upstream documentation that is also freely available.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "licensing-information" + }, + { + "text": "For questions and inquiries about licensing information, please reach out to the Komodo team.", + "tagName": "p", + "path": "start-here/about-komodo-platform/orientation", + "closestElementReference": "licensing-information" + } + ], + "start-here/about-komodo-platform/product-introductions": [ + { + "text": "Product Introductions", + "tagName": "h1", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "product-introductions" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "h2", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Komodo provides open-source atomic-swap software for trading seamlessly between essentially any blockchain asset in existence.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Enjoy All the Benefits of the Old System, and of the New", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "enjoy-all-the-benefits-of-the-old-system-and-of-the-new" + }, + { + "text": "Everything that was possible in the old centralized-exchange system is also possible in the new atomic-swap system.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "enjoy-all-the-benefits-of-the-old-system-and-of-the-new" + }, + { + "text": "High-speed trading is easy, the DEX API allows you to create atomic-swap powered apps and trading bots, and you can even trade on your mobile phone.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "enjoy-all-the-benefits-of-the-old-system-and-of-the-new" + }, + { + "text": "Our DEX software is not bound to Komodo-based blockchain assets. If a blockchain asset can trade on a centralized exchange, odds are you can atomically swap this asset on our DEX software.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "enjoy-all-the-benefits-of-the-old-system-and-of-the-new" + }, + { + "text": "Skip the Centralized Middleman and Trade Directly with Your Trading Partner", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "skip-the-centralized-middleman-and-trade-directly-with-your-trading-partner" + }, + { + "text": "In an atomic swap, there is no need to lend your money to a third party for temporary holding. This keeps security in the hands of the user, reduces the cost of fees, and prevents the users from coalescing their funds into a large target for hackers.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "skip-the-centralized-middleman-and-trade-directly-with-your-trading-partner" + }, + { + "text": "Keep Your Private Keys Private, At All Times", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "keep-your-private-keys-private-at-all-times" + }, + { + "text": "Unlike a centralized exchange, users maintain ownership over their blockchain assets at all times, right up until the moment when their assets are atomically swapped.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "keep-your-private-keys-private-at-all-times" + }, + { + "text": "Join the Crowd, or Start a New One", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "join-the-crowd-or-start-a-new-one" + }, + { + "text": "Users create their own oders for trading between assets. You can fill an already exisitng order, or create a new one if you don't like the price.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "join-the-crowd-or-start-a-new-one" + }, + { + "text": "No Manual Interventions Required", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "no-manual-interventions-required" + }, + { + "text": "The Komodo software uses atomic-swap technology, pioneered by Tier Nolan and our very own JL777, to ensure that a trade either happens, or it doesn't. If a trade stalls or fails halfway through the process, blockchain software ensures that these funds automatically reappear in the users' wallets.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "no-manual-interventions-required" + }, + { + "text": "Integrate Your Coin/Token/Smart-Chain Asset with Our Software", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "integrate-your-coin-token-smart-chain-asset-with-our-software" + }, + { + "text": "Integration requires only a few simple steps, and once up and running, you are free to trade your new blockchain-based asset with whomever you decide.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "integrate-your-coin-token-smart-chain-asset-with-our-software" + }, + { + "text": "You are free to discover your own audience.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "integrate-your-coin-token-smart-chain-asset-with-our-software" + }, + { + "text": "Read an in-depth discussion about Komodo DeFi Framework here.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "integrate-your-coin-token-smart-chain-asset-with-our-software" + }, + { + "text": "Read an in-depth discussion about Komodo DeFi Framework here.", + "tagName": "a", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "integrate-your-coin-token-smart-chain-asset-with-our-software" + }, + { + "text": "Antara Smart Chains", + "tagName": "h2", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Komodo's Smart Chain technology allows you to create secure and fully autonomous blockchains that are designed for a specific purpose.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Smart Chains Rely on the Next Step in Blockchain Evolution: The Antara Framework", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-rely-on-the-next-step-in-blockchain-evolution-the-antara-framework" + }, + { + "text": "The Antara framework allows you to customize your Smart Chain and add arbitrary code to the consensus mechanism.\nThis blockchain evolution allows innovators to better meet the demands of your customers.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-rely-on-the-next-step-in-blockchain-evolution-the-antara-framework" + }, + { + "text": "Comparing a Smart Chain to a Smart-Contract Platform", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "comparing-a-smart-chain-to-a-smart-contract-platform" + }, + { + "text": "| Layer | Branded Terminology | Universally Defined As: | Smart-Contract Comparison |\n| ----------------- | ------------------- | ----------------------- | ------------------------- |\n| Application Layer | Antara Apps | Smart-Chain Apps | dApps |\n| API Layer | Antara API | Smart-Chain API | - |\n| Service Layer | Antara Module | Smart-Chain Module | Smart Contract |\n| Blockchain Layer | Antara Smart Chains | Smart Chains | (Shared Chain) |\n| Platform Layer | Komodo Platform | Smart-Chain Platform | Smart-Contract Platform |", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "comparing-a-smart-chain-to-a-smart-contract-platform" + }, + { + "text": "Smart Chains and Antara Create a Convenient Development Workflow", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "For developers, the unique combination of Smart Chain technology and Antara simplifies the adoption of blockchain technology.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Start by creating a new Smart Chain that will serve your specific application", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Use the library of existing Antara modules to craft application-specific functionality", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Optionally, use Antara to add arbitrary code to your consensus mechanism", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "When your Smart Chain becomes popular, scale into a cluster of Smart Chains", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Link your Smart Chain to other Smart Chains using Antara and Komodo technology", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Trade your assets with essentially any blockchain token using Komodo DeFi Framework", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Stay up-to-date with the latest industry innovations through no-cost updates", + "tagName": "li", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Read an in-depth discussion on the advantages of the Antara Framework here.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "Read an in-depth discussion on the advantages of the Antara Framework here.", + "tagName": "a", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "smart-chains-and-antara-create-a-convenient-development-workflow" + }, + { + "text": "The Architecture of Antara-Powered Smart Chains", + "tagName": "h2", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "the-architecture-of-antara-powered-smart-chains" + }, + { + "text": "Antara API", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-api" + }, + { + "text": "Antara Modules", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-modules" + }, + { + "text": "Antara Smart Chains", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Komodo Platform", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "komodo-platform" + }, + { + "text": "Advantages of the Antara Framework", + "tagName": "h2", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "advantages-of-the-antara-framework" + }, + { + "text": "Programmable Daemon", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "programmable-daemon" + }, + { + "text": "Arbitrary code is added directly into the blockchain daemon. This stands apart from the traditional smart-contract platforms, which abstract a smart contract on top of a virtual machine.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "programmable-daemon" + }, + { + "text": "Modular Design", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "modular-design" + }, + { + "text": "Smart Chains are composed of independent and autonomous modules that are decoupled from the underlying blockchain consensus mechanism.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "modular-design" + }, + { + "text": "Autonomous & Sovereign", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "autonomous-and-sovereign" + }, + { + "text": "Smart Chains are not child chains, nor are they dependent on other blockchains.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "autonomous-and-sovereign" + }, + { + "text": "Turing-Complete", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "turing-complete" + }, + { + "text": "The Antara framework supports C/C++, and in the future it will also support other languages. Therefore, Antara allows for Turing-complete code. With Antara, any program or software can be coded to run within your blockchain daemon.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "turing-complete" + }, + { + "text": "No Gas Fees", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "no-gas-fees" + }, + { + "text": "There are no gas fees with Antara. Regardless of how many processes an Antara module requires, running an instance of the module will only need a single transaction fee, paid in your blockchain’s coin.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "no-gas-fees" + }, + { + "text": "Antara Module Library", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-module-library" + }, + { + "text": "The Antara framework already hosts a library of plug-and-play modules. Each module can add special conditions that affect the nature of transaction consensus on your Smart Chain.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "antara-module-library" + }, + { + "text": "Create Your Own Modules", + "tagName": "h3", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "create-your-own-modules" + }, + { + "text": "Experienced developers can write custom modules, creating the building blocks and RPC calls they need to build more advanced blockchain-based software.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "create-your-own-modules" + }, + { + "text": "Learn more about Smart Chains here.", + "tagName": "p", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "create-your-own-modules" + }, + { + "text": "Learn more about Smart Chains here.", + "tagName": "a", + "path": "start-here/about-komodo-platform/product-introductions", + "closestElementReference": "create-your-own-modules" + } + ], + "start-here/about-komodo-platform/simple-installations": [ + { + "text": "Simple Installations", + "tagName": "h1", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "simple-installations" + }, + { + "text": "Smart Chain Installation", + "tagName": "h2", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": "To install the Komodo daemon, ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": ", and its necessary counterpart, ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": ", the simplest method is to download pre-compiled binaries.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": "Downloadable packages are available for Linux, MacOS, and Windows.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "smart-chain-installation" + }, + { + "text": "Link to Download Software", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "link-to-download-software" + }, + { + "text": "Download and unzip the software files for your operating system..", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "link-to-download-software" + }, + { + "text": "Download and unzip the software files for your operating system..", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "link-to-download-software" + }, + { + "text": "Installing the Simple Downloadable Files", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "Once unzipped, the executables do not require installation. Simply find ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": " and ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": " in the directory where you unzipped the files.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "You may also build ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": " and ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "komodo-cli", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": " from source. This is not required, but it is considered the best practice. Building from source enables you to receive the latest patches and security upgrades the moment they are pushed to the ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": " source.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-the-simple-downloadable-files" + }, + { + "text": "Using the official Docker image", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "Komodo offers a Docker image that has pre-built versions of the Komodo software. The image is based on the Ubuntu operating system and offers different versions of the software that are built from different Komodo Github repositories, such as the ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "dev", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": ", ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "beta", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": ", and ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "research", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": " branches.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "The Docker image can be found here: ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "An example of how the image can be used is available in this ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "github repository", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "github repository", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image" + }, + { + "text": "See the Smart Chains Documentation for Further Details", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "Please see the full ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "Smart Chains", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": " technical documentation for full software explanations. You will find ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "a walkthrough on building from source here.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "Smart Chains", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "a walkthrough on building from source here.", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "see-the-smart-chains-documentation-for-further-details" + }, + { + "text": "Komodo DeFi Framework Installation", + "tagName": "h2", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "komodo-de-fi-framework-installation" + }, + { + "text": "Installing Komodo DeFi Framework Software", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-komodo-de-fi-framework-software" + }, + { + "text": "The following links contain downloadable Komodo DeFi Framework software. Simply download the files appropriate for your operating system, extract them to your desired location, and double click the application to begin. ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-komodo-de-fi-framework-software" + }, + { + "text": "Link to Komodo DeFi Framework Software - Simple Installations", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-komodo-de-fi-framework-software" + }, + { + "text": "Link to Komodo DeFi Framework Software - Simple Installations", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "installing-komodo-de-fi-framework-software" + }, + { + "text": "Using the official Docker image", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "Komodo offers a Docker image that features the Komodo DeFi Framework software. This Docker image is based on the Ubuntu (Linux) operating system.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "The image can be found here: ", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo-defi-framework", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "https://hub.docker.com/r/komodoofficial/komodo-defi-framework", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "An explanation of how the image can be used is available in the \"Overview\" section of the above linked webpage.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "using-the-official-docker-image-2" + }, + { + "text": "Additional Komodo DeFi Framework Documentation", + "tagName": "h3", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + }, + { + "text": "Please see the following links for further details regarding Komodo DeFi Framework software.", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + }, + { + "text": "Link to Source Code Installation Methods", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + }, + { + "text": "Link to Source Code Installation Methods", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + }, + { + "text": "Link to Komodo DeFi Framework API", + "tagName": "p", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + }, + { + "text": "Link to Komodo DeFi Framework API", + "tagName": "a", + "path": "start-here/about-komodo-platform/simple-installations", + "closestElementReference": "additional-komodo-de-fi-framework-documentation" + } + ], + "start-here/core-technology-discussions/antara": [ + { + "text": "The Antara Framework", + "tagName": "h1", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "the-antara-framework" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "introduction" + }, + { + "text": "Antara is an adaptable framework for end-to-end blockchain development. This framework allows developers to build blockchain-based applications in a more simple, quick, and less resource intensive manner than ever before. The framework reduces the barriers to adopting blockchain technology and opens up a universe of possibilities.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "introduction" + }, + { + "text": "The Three Layers of the Antara Framework", + "tagName": "h3", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "the-three-layers-of-the-antara-framework" + }, + { + "text": "There are three layers to Komodo’s Antara Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "the-three-layers-of-the-antara-framework" + }, + { + "text": "Generating Customizable Smart Chains", + "tagName": "h4", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "generating-customizable-smart-chains" + }, + { + "text": "The first layer allows for the generation of a customized, independent chain called a Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "generating-customizable-smart-chains" + }, + { + "text": "Core-Level Antara Modules", + "tagName": "h4", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "core-level-antara-modules" + }, + { + "text": "Modules are inserted into the consensus mechanism of a Smart Chain that allow the developer to change the nature of the chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "core-level-antara-modules" + }, + { + "text": "Antara Application Programmable Interface", + "tagName": "h4", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-application-programmable-interface" + }, + { + "text": "The third layer is the technology that integrates a Komodo Smart chain with other software. This includes an open API for language-agnostic, blockchain-based application development, an atomic-swap powered DEX, and more.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-application-programmable-interface" + }, + { + "text": "Antara Smart Chains", + "tagName": "h3", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Chains launched with Antara are not ordinary blockchains. They’re “Smart Chains.” They’re smart because they’re customizable, completely independent, scalable, and modular.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Smart Chains are customizable along 18 different parameters, allowing for customization of block time, block rewards, consensus rules, algorithms, privacy settings, and much more.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Smart Chains are also infinitely scalable, as multiple Smart Chains can be clustered together to function as one. Moreover, each Smart Chain comes with built-in modules that accelerate development. This leads us to the second layer of the Antara Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains" + }, + { + "text": "Antara Modules", + "tagName": "h3", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules" + }, + { + "text": "Each Smart Chain comes with a library of powerful modules built-in. These modules include features like tokens, oracles, stablecoins, quantum security, lightning payments, and more.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules" + }, + { + "text": "Antara Modules are activated prior to launch to meet the unique needs of every project that builds with Komodo’s Antara Framework. They provide an enormous boost in performance and drastically reduce the workload for a new project, ultimately leading to a faster product launch.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules" + }, + { + "text": "Advanced developers can optionally program new modules, giving the developer complete freedom over their Smart Chain's behavior.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules" + }, + { + "text": "Antara Integration Layer", + "tagName": "h3", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer" + }, + { + "text": "The third layer of the Antara Framework is the Integration Layer. The Integration Layer offers a series of white-label products, including a multi-coin wallet, a fully decentralized exchange, a decentralized crowdfunding application, custom block explorers, and SPV server integration.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer" + }, + { + "text": "The Antara Integration Layer also provides an open API that can be used to write blockchain-based applications and software in any programming language. All custom-built apps and software run natively and at the consensus level of each individual Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer" + }, + { + "text": "Antara Smart Chains", + "tagName": "h2", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Antara Smart Chains are completely independent and sovereign.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Each Smart Chain has its own consensus rules, decentralized network, and currency. The consensus rules are decided prior to launch and the network validates transactions and blocks according to those rules. Transaction fees are always paid in each Smart Chain’s coin, not in the Komodo Platform’s native currency. Smart Chains never pay any gas fees to the platform.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "While multi-chain platforms are on the rise, many of Komodo’s competitors do not offer true sovereignty. The chains offered on other prominent multi-chain platforms are “child chains” or “side chains.\" Those types of chains are almost always forced to rely upon the platform’s parent chain in some way.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Antara Smart Chains never depend on the Komodo Platform, the Komodo blockchain, or the KMD coin. Komodo believes that this open model is the only way to create an ecosystem in which blockchain startups can thrive. Further, a forced dependence on the Komodo blockchain or the KMD coin may provide short-term demand but is sure to be self-defeating in the long run.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "In addition, Smart Chains can also choose to participate in delayed Proof of Work (dPoW) security and Platform Synchronizations to enable interoperability and scalability features.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Antara Smart Chains are customizable along 18 different parameters, offering hundreds of billions of different configurations to all projects that build with Komodo’s Antara Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "| Customization | Description |\n| ------------------------- | --------------------------------------------------------------------------------- |\n| Name | the name of the Smart Chain and the ticker symbol for the chain’s coin |\n| Block Time | the number of seconds that elapse between block generation |\n| Consensus Rules | Proof of Work (PoW) or Proof of Stake (PoS) or a combination |\n| PoS Implementation | VerusPoS rules or PoS64 rules |\n| PoW Hashing Algorithm | Equihash or VerusHash |\n| Privacy Settings | mandatory privacy, optional privacy, or complete transparency |\n| Interoperability Settings | choose which chains your Smart Chain will communicate with |\n| Pre-Mine Supply | the number of coins mined in the first block of the Smart Chain |\n| Block Rewards | the number of coins awarded to a miner or staker for finding a block |\n| Reward Reductions | the number of blocks between reductions in block rewards |\n| Block Reward Decay | percentage by which block rewards decline at each reduction |\n| Reward Eras | an optional feature to fully customize a chain’s coin emission schedule |\n| Time Locking | the option to make block rewards frozen for a set number of blocks |\n| Taxation | an optional, inflationary feature that generates a small tax for all transactions |\n| Founder’s Bonus | optional feature that makes periodic payouts to the chain’s founder |\n| Pubkey | designate the address to which pre-mine supply, tax, and bonuses are paid |\n| Multi-Signature | the option to designate a multi-sig address to receive pub key payouts |\n| Antara Modules | choose which Antara Modules that you would like to activate |", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-smart-chains-2" + }, + { + "text": "Antara Modules", + "tagName": "h2", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "Antara Modules act as the foundation upon which advanced blockchain-based applications and software can be built. They offer an enormous level of functionality and cut down on the amount of time a new blockchain project needs to spend on development before going to market.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "As they run natively on every individual Smart Chain, Antara Modules are faster and more secure than traditional smart contracts. They also run at the consensus level, meaning every module is verified by every node in the network upon each use.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "In addition, Antara Modules are written in the C and C++ programming languages so they are Turing complete and can be coded to perform any functions that any existing software performs.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "Significantly, Antara Modules do not require any gas fees. Instead, a single use of a module requires just one ordinary transaction fee, which is always paid in each respective Smart Chain’s coin. This makes it far more practical and profitable to build and run a complex blockchain-based applications on Komodo than on any other multi-chain platform in existence.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "All Smart Chains come with a library of powerful, built-in modules to choose from.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "| Module | Description |\n| --------------------- | ------------------------------------------------------------------------ |\n| Tokens | create tokens (fungible or non-fungible) on your own Smart Chain |\n| Oracles | use an aggregated data oracles solution to bring off-chain data on chain |\n| Proxy Token DEX | trade tokenized representations of foreign blockchain assets |\n| Instant Micropayments | a channel for secure and instant micropayments |\n| Funds Recovery | allow users to designate a backup address to safeguard funds |\n| Stablecoins | an algorithmic stablecoin solution with optional digital asset backing |\n| Trustless Price Feeds | bring price data on-chain in a trustless, decentralized manner |\n| Rewards | give users the option to earn rewards by locking coins for a set time |\n| Quantum Security | make all transactions on your Smart Chain quantum secure |\n| MuSig Payments | enable private, fast, low-data multi-signature payments |\n| Faucet | an automated crypto faucet feature with built-in spam prevention |", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "The option to code custom modules is also available to all Smart Chain projects. While coding custom modules is an advanced development task, it offers an unparalleled degree of flexibility and customization. Any processes imaginable can be coded into an Antara Module, which will then run natively and at the consensus level of a project’s Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-modules-2" + }, + { + "text": "Antara Integration Layer", + "tagName": "h2", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer-2" + }, + { + "text": "The third and final layer of Komodo’s Antara Framework is the Integration Layer, which consists of an open API and a selection of white-label applications to accelerate development.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer-2" + }, + { + "text": "Each Antara Module activated on a Smart Chain provides a number of remote procedure calls (RPC). Each individual call executes a different process and offers a unique functionality. Together, these RPCs from all of the the Antara Modules make up the open API.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer-2" + }, + { + "text": "The Antara open API is language agnostic so developers can use it to code blockchain-based applications in the programming language of their choosing. This makes Komodo’s Antara Framework the fastest, easiest, and most cost effective way to adopt blockchain technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/antara", + "closestElementReference": "antara-integration-layer-2" + } + ], + "start-here/core-technology-discussions/delayed-proof-of-work": [ + { + "text": "Delayed Proof of Work", + "tagName": "h1", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "delayed-proof-of-work" + }, + { + "text": "A Foundational Discussion of Blockchain Security", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "Komodo’s form of providing security is called Delayed Proof of Work (dPoW). This security method builds on the most advanced form of blockchain security in existence, Proof of Work (PoW). The latter form of security is the method utilized by most of the secure PoW networks out there like the Bitcoin/Litecoin networks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "To understand the value of Komodo’s dPoW security, we must first explain how PoW works and why it is the most secure method of maintaining a decentralized blockchain. We must also examine PoW’s shortcomings, so that we may understand the need for Komodo’s dPoW method and the advantages it provides to the blockchain community.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "To understand how PoW technology functions, we begin by explaining the roots that make the Bitcoin/Litecoin protocol a viable means of securely transferring value.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-foundational-discussion-of-blockchain-security" + }, + { + "text": "What Is A Consensus Mechanism?", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "what-is-a-consensus-mechanism" + }, + { + "text": "The \"Double Spend\" Problem", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The creation of blockchain technology stems from the early mathematical studies of encryption using computer technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "One such example is related to the information-encoding device, \"Enigma,\" invented by the Germans at the end of World War I. Alan Turing, a British Intelligence agent, famously beat the Enigma device by inventing the world’s first \"digital computer.\" This provided enough computing power to break ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Enigma’s", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": " encryption and discover German secret communications.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Enigma’s", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "This early affair with encryption set off a race throughout the world to develop myriad forms of securely transferring information from one party to another via computer technology. While each new form of computer encryption provided more advantages, there remained one problem that prevented encryption from being useful as a means of transferring not just information, but also financial value.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "This challenge is known as the \"Double Spend\" problem. The issue lies in the ability of computers to endlessly duplicate information. In the case of financial value, there are three important things to record: who owns a specific value; the time at which the person owns this value; the wallet address in which the value resides. When transferring financial value from one person to another, it is essential that if Person A sends money to Person B, Person A should not be able to duplicate the same money and send it again to Person C.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Bitcoin protocol", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": ", invented by an anonymous person (or persons) claiming the name of Satoshi Nakamoto, solved the Double Spend problem. The underlying math and computer code is both highly complex and innovative. For the purposes of this paper we need only focus on the one aspect of the Bitcoin protocol that solves the Double Spend problem: the consensus mechanism.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "Bitcoin protocol", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-double-spend-problem" + }, + { + "text": "The Consensus Mechanism Provides Security Against a \"Double Spend\"", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "The consensus mechanism created by Nakamoto is perhaps one of the most powerful innovations of the twenty-first century. His invention allows individual devices to work together, using high levels of encryption, to securely and accurately track ownership of digital value (be it financial resources, digital real estate, etc.). The mechanism performs this in a manner that does not allow anyone on the same network (i.e. the Internet) to spend the same value twice.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "Let us suppose a user, Alice, indicates in her digital wallet that she wants to send cryptocurrency money to a friend. Alice’s computer now gathers several pieces of information, including any necessary permissions and passwords, the amount that Alice wants to spend, and the receiving address of her friend’s wallet. All this information is gathered into a packet of data, called a \"transaction,\" and Alice’s device sends the transaction to the Internet.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "There are several types of devices that will interact with Alice’s transaction. These devices will share the transaction information with other devices supporting the cryptocurrency network. For this discussion, we need only focus on one type of device: a cryptocurrency miner.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "The following descriptions are simplified explanations of a truly complex\nprocess. There are many other strategies cryptocurrency miners devise to\nout-mine their competition, and those strategies can vary widely.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-consensus-mechanism-provides-security-against-a-double-spend" + }, + { + "text": "A Miner Competes to Add Blocks to the Network’s History, in Exchange for a Reward", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-miner-competes-to-add-blocks-to-the-network-s-history-in-exchange-for-a-reward" + }, + { + "text": "Step One: Preparing the Preliminary Information", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "This device is performing an activity called cryptocurrency \"mining.\" Let us focus now on a mining device that captures Alice’s raw transaction data. This device is owned by a tech-savvy miner, named Bob, who wants to add Alice’s transaction to the permanent history of the Bitcoin network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "If Bob is the first person to properly process Alice’s transaction he will receive a financial reward. One key part of this reward is a percentage-based fee, taken from Alice’s total transaction amount.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-preparing-the-preliminary-information" + }, + { + "text": "The Mempool is the Collection of All Raw Transactions Waiting to be Processed", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-mempool-is-the-collection-of-all-raw-transactions-waiting-to-be-processed" + }, + { + "text": "Furthermore, Bob does not have just one transaction alone to mine. Rather, he has an entire pool of raw transactions, created by many people across the Internet. The raw data for each of these transactions sits in the local memory bank of each miner’s mining device, awaiting the miner’s commands. Miners call this pool of transactions, the \"mempool.\" Most miners have automated systems to determine the transaction-selection process, based on estimated profit.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-mempool-is-the-collection-of-all-raw-transactions-waiting-to-be-processed" + }, + { + "text": "Creating Transaction Hashes", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "After Bob makes his choices about which transactions he will attempt to mine (and we assume that he includes Alice’s transaction), Bob’s mining device then begins a series of calculations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "His device will first take each individual transaction’s raw data and use mathematical formulas to compress the transaction into a smaller, more manageable form. This new form is called a \"transaction hash.\" For instance, Alice’s transaction hash could look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "Bob will prepare potentially hundreds of transaction hashes before proceeding to the next step. One important thing to understand about the compression of data in the Bitcoin protocol, including the transaction hash above, is that calculations herein obey a principle called, The Cascade Effect.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-transaction-hashes" + }, + { + "text": "The Cascade Effect: Changing One Bit of Data Changes the Entire Result", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "The Cascade Effect simply means that were Bob to attempt to change even the smallest bit in the raw data—whether from a desire to cheat, or by mistake, or for any other reason—the entire transaction hash would dramatically change. In this way, the mathematical formulas in the Bitcoin protocol ensure that Bob cannot create an improper history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "Were Bob to attempt to create an incorrect transaction hash, other miners would discover the falseness of the hash during their automated mining process. The miners would use the same raw transaction data from Alice, perform the proper mathematical formulas in the Bitcoin protocol, and immediately discover that Bob's attempted hash was incorrect. All the devices on the network would reject Bob’s attempt and this would prevent Bob from claiming rewards.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-cascade-effect-changing-one-bit-of-data-changes-the-entire-result" + }, + { + "text": "Step One Continued: Finishing the Preliminary Calculations", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Now, using more mathematical formulas, Bob takes the transaction hashes he is attempting to process and compresses them into a new manageable piece of data.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "This is called, \"the merkle root.\" This represents all the transactions that Bob hopes to process, and from which he hopes to gain a reward. Bob’s merkle root could look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Finally, Bob will gather information provided from the last miner that successfully added to the permanent blockchain history. This information is called, \"the block header.\" It contains a large amount of complex data, and we won’t go into all the details. The one important element to note is that the block header gives Bob clues about how to properly add the next piece of information to the permanent Bitcoin history. One of these hints could look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "We will return to this clue further on.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Having all this information, Bob is nearly prepared. His next step is where the real challenge begins.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-continued-finishing-the-preliminary-calculations" + }, + { + "text": "Step Two: The Race to Finish First", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Bob’s computer is going to gather all the above information and collect it into a set of data called a \"block.\" Mining this block and adding it to the list of blocks that came before is the process of creating a \"chain\" of blocks—hence the industry title, \"blockchain.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "However, adding blocks to the blockchain is not so easy. While Bob may have everything up to this point correctly prepared, the Bitcoin protocol does not yet give Bob the right to add his proposed block to the chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The consensus mechanism is designed to force the miners to compete for this right. By requiring the miners to work for the right to mine a new valid block, competition spreads across the network. This provides many benefits, including time for the transactions of users (like Alice) to disseminate around the world, thus providing a level of decentralization to the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Therefore, although Bob would prefer to immediately create a new valid block and collect his reward, he cannot. He must win the competition by performing the proper work first. This is the source of the title of the Bitcoin-protocol consensus mechanism, \"Proof of Work\" (PoW).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The competition that Bob must win is to be the first person to find an answer to a simple mathematical puzzle, designed by Satoshi Nakamoto. To solve the puzzle, Bob guesses at random numbers until he discovers a correct number. The correct number is determined by the internal complex formulas of the consensus mechanism and cannot be discovered by any means other than guessing. Bitcoin miners call this number a \"nonce,\" which is short for \"a ‘number’ you use ‘once.’\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Bob’s mining device will make random guesses at the nonce, one after another, until a correct nonce is found. With each attempt, Bob will first insert the proposed nonce into the rest of his block. To find out if his guess is correct, he will next use mathematical formulas (like those he used earlier) to compress his attempt into a \"block hash.\" A block hash is a small and manageable form of data that represents the entire history of the Bitcoin blockchain and all the information in Bob’s proposed block. A block hash can look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Recall now The Cascade Effect, and how it states that changing one small number in the data before performing the mathematical computations creates a vastly different outcome. Since Bob is continually including new guesses at the nonce with each computation of a block hash, each block-hash attempt will produce a widely different sequence of numbers. Miners on the Bitcoin network know when a miner, such as Bob, solves the puzzle; by observing the clues that were provided earlier. Recall that the last time a miner successfully added data to the blockchain, they provided these clues in their block header. One of the clues can look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "This detail, \"difficulty,\" simply tells miners how many zeros should be at the front of the next valid block hash. When the difficulty setting is the level displayed above, it tells miners that there should be exactly ten zeros. Observe Bob’s attempted block hash once again, which he created after making a guess at a nonce, adding this proposed nonce into his block, and performing the mathematical formulas:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "The block hash above has ten zeros at the beginning, which matches the number of zeros in the difficulty level. Therefore, the hash that Bob proposed is correct. This must mean that he guessed a correct nonce. All the miners on the network can prove for themselves that Bob was correct by taking all the same information from their mempools, adding Bob’s nonce, and performing the mathematical calculations. They will receive the same result, and therefore Bob is the winner of this round.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "On the other hand, due to the Cascade Effect, if Bob’s attempted nonce had produced a block hash with the incorrect number of zeros at the front, his block hash would be invalid. The network would not afford him the right to add an incorrect block hash to the network, and all the miners would continue searching.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-the-race-to-finish-first" + }, + { + "text": "Step Three: Bob Finds the Nonce", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "Once a miner discovers a nonce that produces a valid block hash, the miner has \"found a new block,\" and can send the signal across the Internet. The consensus mechanism running on every other mining device can verify for themselves the calculations. Once verified, the consensus mechanism grants the miner the right both to add the proposed block to the blockchain, and to receive the reward.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "Let us return to Bob’s machine, having just guessed a correct nonce, and thus holding a valid block hash. Bob’s machine instantly sends out the winning information across the Internet, and Bob collects his reward from the Bitcoin network. All the other miners must readjust. Earlier, they were searching for the correct nonce based off the information from the previous block header. However, Bob’s new valid block includes a new block header. All the other miners on the network abandon their current work, adopt Bob’s new block header, make many recalculations in their underlying data, and begin their search for the next nonce.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "There is no sympathy in the Bitcoin protocol for any miner’s wasted efforts. Suppose another machine on the network was also trying to mine Alice’s transaction, and lost to Bob in the race. Only Bob earns the reward from Alice’s transaction, and the other miner receives nothing in return for their costs and time.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "For Alice, this process seems simple. She first indicated the wallet address of her friend and sent cryptocurrency. After a certain amount of time, her friend received the money. Alice can ignore the byzantine process of the miners that occurred between these two events. Alice may not realize it, but the PoW consensus mechanism provides the foundation of security upon which she relies.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-bob-finds-the-nonce" + }, + { + "text": "The Dominance of the Proof-of-Work Consensus Mechanism", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-dominance-of-the-proof-of-work-consensus-mechanism" + }, + { + "text": "Proof of Work (PoW) Fosters Ever Increasing Security", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "proof-of-work-po-w-fosters-ever-increasing-security" + }, + { + "text": "There are several reasons why PoW networks, especially Bitcoin, continue to dominate in terms of security and blockchain success.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "proof-of-work-po-w-fosters-ever-increasing-security" + }, + { + "text": "A simple, preliminary reason is that PoW networks foster ever-increasing speed and computer power. Miners must constantly update and innovate above their competitors to continue earning rewards.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "proof-of-work-po-w-fosters-ever-increasing-security" + }, + { + "text": "Speed and Power are of the Essence", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "Among miners, having a faster and more powerful computer can mean earning rewards more frequently. For miners seeking to maximize profit, competition requires constant upgrades to machinery and to a miner’s customized underlying code.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "The frequency at which a device can create proposed block hashes is called \"hash power.\" The more hash power a collective PoW network has across all miners mining the blockchain, the more secure the network. This competitive pressure provides one important advantage in security to PoW networks, when compared to alternate consensus mechanisms.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "speed-and-power-are-of-the-essence" + }, + { + "text": "The Network Effect: Bitcoin’s Ability to Dominate Begins", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "A high level of security fosters a sense of trust among users, and this can grow a PoW network’s audience. As the audience grows, both the number of transactions and the price of the coin increase. This attracts more miners. The rising level of miners provides greater overall hash rate to the network, which in turn fosters a stronger sense of trust. This increased sense of security can raise the number of users on the network, which can increase the number of miners, and the cycle repeats.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "In economics, this is classified as a \"Network Effect,\" where a cycle of behavior encourages more of the same behavior, with compounding interest. Due to the Network Effect, and the fact that Bitcoin is the oldest PoW network, Bitcoin is increasing its security at a rate faster than the rate of other PoW networks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "Furthermore, consider the effect caused when the price of a PoW-blockchain coin rises. Before the rise, assume the blockchain coin is worth one dollar. A miner is justified in spending the necessary money (on equipment, upgrades, and electrical costs, etc.) to justify one dollar’s worth of hash rate. If the price shifts upwards to two dollars, the miner must upgrade their entire business to justify two dollars’ worth of a matching hash rate. If the miner does not upgrade, their competitor will, and then the miner will no longer be able to compete for rewards.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-network-effect-bitcoin-s-ability-to-dominate-begins" + }, + { + "text": "The Longest Chain Rule: The True \"Secret Sauce\" of PoW Domination", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-true-secret-sauce-of-po-w-domination" + }, + { + "text": "There are many more reasons why PoW networks continue to dominate in security. Yet, for our discussion, there is one element that rises above all others. It is called, \"The Longest Chain Rule,\" and some blockchain developers may argue that it is \"the secret sauce\" that fuels PoW’s strength.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-true-secret-sauce-of-po-w-domination" + }, + { + "text": "The Longest Chain Rule is the determining factor whenever two competing versions of the blockchain history arise on the network. The rule simply states that whichever of the two versions grows longer first, wins. The other version is deactivated, and therefore all transactions and rewards on that version are not visible to users. The simplicity of this rule is a key to understanding why PoW consensus mechanisms continue to outperform their competition.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-true-secret-sauce-of-po-w-domination" + }, + { + "text": "The Simple Effects of The Longest Chain Rule", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "On a surface level, this rule prevents a double spend by a network user. For instance, consider a husband and wife accidentally attempting to spend the same money at the exact same time, while each person is traveling in a different part of the world.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "For the sake of the discussion, we are oversimplifying the following actions\nso that they take place within only a few milliseconds. We also oversimplify\nthe technical details, for clarity. The full explanation of this process is\nprovided in the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "Bitcoin wiki", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": ", for\nthose who would like to gain a deeper understanding.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "Bitcoin wiki", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-simple-effects-of-the-longest-chain-rule" + }, + { + "text": "A Tale of Two Blockchains", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "Let us suppose that the husband is in Asia and the wife is in the Americas. Both are purchasing a car. The husband uses all the funds from the family Bitcoin wallet to purchase a car at precisely 8:00 PM (UTC). The wife makes her purchase at the exact same moment, for a similar amount.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "After making his purchase, the husband’s transaction hash is immediately sent to a mining device in China, where it is held in the miner’s local mempool. (Recall that a mempool is a collection of all raw transaction data across the network.)", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "Let us suppose that the husband’s transaction arrives in the Chinese miner’s mempool, the miner adds this transaction in a new block and soon the Chinese mining equipment finds a correct nonce and a valid block hash. The Chinese miner declares the winning information by sending out a message with a new block (note that he also collects a reward in this block). All the miners in his local (Asian) vicinity (who receive the winning information faster than in the Americas, due to proximity) complete the block verification process, increase the length of the blockchain, and begin assembling and mining the next block on top of the Chinese block.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "On the opposite side of the world, essentially the exact same actions happen. The wife’s transaction is sent to the nearest miner, this time located in Washington state of the United States. Just as the transaction enters the Washington state miner’s mempool, the miner adds it to a new block and discovers a valid block hash. Then he sends out a message with the new block (in this block he also collects the reward - this is the same reward that the Chinese miner is attempting to claim). All the miners in the local (US) vicinity verify the information immediately, add the new block to their chain database and begin assembling a new block and then searching for a valid hash for this block, to connect it to the Washington state miner’s recent block.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-tale-of-two-blockchains" + }, + { + "text": "An Internal Conflict of Interest Arises Within the Bitcoin Network", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "Note the paradox here. There are now two versions of the Bitcoin history that are valid, yet different.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "These two versions make their way across the Internet, around the world, each to the other side. When the competing messages arrive, the Bitcoin protocol sees two conflicting chain histories: the same money was spent twice (once on each competing chain).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "Consider how on each side of the world the miners are spending their financial and temporal resources to further their own interests. There is no economic incentive for either side to submit to the other, by nature. Therefore, there is a conflict of interest within the Bitcoin network itself. The Bitcoin network would swiftly fail, were it not for The Longest Chain Rule.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-internal-conflict-of-interest-arises-within-the-bitcoin-network" + }, + { + "text": "The Longest Chain Rule: The History Which is Longer First, Wins", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The Longest Chain Rule simply declares that whichever of the two competing blockchains grows longer first, wins. The consensus mechanism deactivates the other version and chain users won't see it anymore.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "Let us suppose that the Chinese mining equipment is superior in this instance, and the Chinese miner manages to discover the next valid block hash and send out a message with the new block before the Washington state miner can do likewise. Across the world, the moment the message with the block that Chinese miner completed, the Bitcoin protocol will select the best chain between both Chinese miner's and the Washington state miner’s versions of the Bitcoin history, based on more proof-of-work in Chinese miner's history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "There is no sympathy for any wasted efforts, nor for any misunderstandings between the wife and her car dealer. The Bitcoin protocol’s consensus mechanism simply presses forward. The Washington state miner’s rewards disappear, as though they never occurred. The wife’s purchase of a car likewise evaporates.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "(Typically, a normal and prepared car dealer utilizing cryptocurrency would not consider a customer’s transactions acceptable until several new blocks were added to the blockchain. In this manner, cryptocurrency users can ensure that a transaction is beyond contestation before the customer can, for example, drive a new car off the lot.)", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The Washington state miner gets a raw deal in this scenario, but the network benefits as a whole. The Longest Chain Rule provides the necessary security to prevent a Double Spend. The network accurately recorded one family member’s purchase of a car, prevented the mistaken double spend, and ensured that the most competitive miner received a just reward.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "This example illuminates the importance of The Longest Chain Rule. However, there is a dark side to this rule for the unsuspecting and unprepared blockchain developer.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-longest-chain-rule-the-history-which-is-longer-first-wins" + }, + { + "text": "The 51% Attack", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-51-attack" + }, + { + "text": "Here’s where intrigue enters the picture. The \"easiest\" way to steal money on a PoW blockchain (such as Bitcoin) is to perform a 51% Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-51-attack" + }, + { + "text": "In this attack, the malicious actor first spends cryptocurrency in exchange for something of value, which they take from their victim. Next, the malicious actor creates an alternate version of the PoW network’s history wherein those transactions never took place. Using advanced mining equipment, the malicious actor then \"attacks\" the PoW network by mining blocks to this \"false\" history faster than the rate at which other miners on the PoW network can mine blocks to the \"true\" history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-51-attack" + }, + { + "text": "Assuming the malicious actor has a sufficient hash rate, as this \"false\" history grows longer than the \"true\" history, the Longest Chain Rule will cause the consensus mechanism to overwrite the \"true\" version. The earlier transactions the malicious actor made would be as though they never occurred. Therefore, the malicious actor would keep both their original funds and whatever item of value they exacted from their victim.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-51-attack" + }, + { + "text": "This is known as the 51% Attack. The number 51% derives from the fact that to successfully perform this attack, the attacker must add enough hashing power to the overall PoW network to form a majority of the hash rate.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-51-attack" + }, + { + "text": "Size is Yet Another Reason Behind Bitcoin’s Current Success Among PoW Networks", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "Today, Bitcoin’s overall hash rate is enormous. The collective of computers around the world mining Bitcoin is effectively the largest supercomputer ever created by man. As of the writing of this paper, some estimate that ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "the Bitcoin network consumes more electricity than the entire country of Denmark", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": ", and the number of miners continues to grow.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "the Bitcoin network consumes more electricity than the entire country of Denmark", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "Therefore, to attempt a 51% Attack against the Bitcoin network could cost millions, if not billions of dollars in computer hardware. This attack would also require a sustained consumption of electricity that is likely unfeasible for a single geographical location, and would be expensive even for a decentralized-hardware network. So long as the miners of Bitcoin remain interested in the Bitcoin network, therefore, Bitcoin has a level of security that is nigh impenetrable.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "We will return to the proposition of the miners’ ability to choose a different network to mine later in our discussion.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "size-is-yet-another-reason-behind-bitcoin-s-current-success-among-po-w-networks" + }, + { + "text": "The Genesis Attack", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-genesis-attack" + }, + { + "text": "A Genesis Attack on the Bitcoin Network", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Recall that according to the original version of the Bitcoin protocol, sometimes called the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "\"vanilla\" version,", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": " the Longest Chain Rule only requires that the blocks in the longest chain all be properly mined. Furthermore, recall that computers can endlessly duplicate code.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "\"vanilla\" version,", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Finally, note that during our explanation, when describing a malicious actor’s attempt to create an empty, meaningless blockchain history, we use quotation marks when employing the word, \"false.\" Likewise, when describing the blockchain history trusted by the people on the network, we include the word \"true\" in quotations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "We do this because at the core level, the consensus mechanism is purposefully blind regarding any human user’s preference between \"truth\" and \"false.\" The code only sees \"truth\" in terms of properly mined blocks, and overall blockchain length. Nothing more.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Now suppose the existence of a supercomputer a thousand times more powerful than the entirety of the Bitcoin-miner network. This supercomputer could, in theory, stealthily re-create and execute the initial code that spawned the very first block of the Bitcoin blockchain—the \"Genesis Block.\" The supercomputer could then grind out block hashes, one-by-one, mining meaningless blocks and adding them to this empty, \"false\" version of the Bitcoin history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Once this meaningless blockchain’s length sufficiently exceed the so-called \"true\" blockchain used today, the supercomputer could then release its \"false\" version to the Internet.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Throughout the world, (assuming the vanilla protocol) the Bitcoin network would automatically recognize the \"false\" blockchain as the correct blockchain! This would all be according to the code. The so-called \"false\" blocks would be properly mined, and the length would be longer than the chain that users currently trust. The vanilla protocol would, in theory, replace the so-called \"true\" history with the empty variant.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "Such an event might seem to users like a virus being uploaded to the Internet. The event could destroy all human trust in the current version of the Bitcoin protocol, wreaking financial havoc throughout the cryptocurrency realm. While users of the Bitcoin protocol would naturally protest, the entire operation would be entirely in agreement with the underlying code.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "When observing Bitcoin’s current hash power, the creation of such an anti-Bitcoin supercomputer is clearly not feasible in the immediate future. Assuming Bitcoin miners remain interested in the Bitcoin network, the risk of a Genesis Attack on Bitcoin is essentially non-existent.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "However, consider the implications of the Genesis Attack on unsuspecting or underprepared smaller PoW blockchain projects.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-genesis-attack-on-the-bitcoin-network" + }, + { + "text": "The More Realistic Dangers of The Genesis Attack", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "Let us assume a naïve blockchain entrepreneur building a new product. They are generally aware that malicious actors throughout the world are likely to attack their blockchain, stealing funds and otherwise causing trouble. Therefore, the naïve entrepreneur decides to implement what they believe is the most secure method of a blockchain consensus mechanism, PoW, and they offer ample financial rewards to miners to incentivize a secure network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The entrepreneur and their entire audience may not realize it, but so long as their network’s overall hash rate remains below the threshold of an attack by even an average supercomputer, their entire blockchain history is vulnerable to complete annihilation. A technically astute competitor, seeing the vulnerability, and possessing ownership of the requisite computer hardware, would be able to create an empty and longer version of the same blockchain code and vaporize their competitor’s financial records.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The cryptocurrency industry is young, and few but the most advanced of developers understand the many ways in which blockchain competition can be technically eliminated. Therefore, we have seen but a few serious cases of the Genesis Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "One notable instance occurred when an original Bitcoin developer, Luke-jr, used a variation of the attack to destroy a blockchain project called Coiledcoin. Luke-jr performed this attack out of a belief that Coiledcoin was a ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "disingenuous project.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": " Setting aside any human sentiment on either side of the event, the fact stands that Luke-jr’s variation of the Genesis Attack was the end of the Coiledcoin network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "disingenuous project.", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The complexity in establishing a secure PoW blockchain remains a challenge for would-be entrepreneurs. Furthermore, there are existing PoW developers that are not fully aware of their vulnerability. Likewise, there are would-be malicious actors that have yet to realize the many methods available to cause frustration. The potential danger surrounding the issue of the Genesis Attack shows the relative youthfulness of the cryptocurrency industry.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "For a PoW blockchain network to maintain Bitcoin-level security, therefore, it must maintain a hash rate that is high enough to constantly mine blocks faster than a potential competitor could either perform the 51% Attack (rewriting the most recent history of transactions), or the deadly Genesis Attack (complete chain rebuilding).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-more-realistic-dangers-of-the-genesis-attack" + }, + { + "text": "The Financial and Eco-Unfriendly Problems With All PoW Networks", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-financial-and-eco-unfriendly-problems-with-all-po-w-networks" + }, + { + "text": "The problems with young PoW networks do not stop there, and furthermore, even Bitcoin’s PoW network has issues: the security of a PoW network comes at a high cost to the environment, and miners have no obligation to mine any particular network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-financial-and-eco-unfriendly-problems-with-all-po-w-networks" + }, + { + "text": "PoW Networks Are Expensive", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "Some estimate that by 2020, the Bitcoin network alone will consume more electricity than the entire world currently consumes (as of ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "2017", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "). Having just one PoW network in existence, therefore, is already strain enough on our environment. The network is also a burden on our infrastructure and our worldwide economy.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "2017", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "On the one hand, adding additional PoW blockchains to the world can serve the purpose of forcing free-market competition on the Bitcoin developers, encouraging ethical and innovative behavior. Therefore, some competition among PoW networks is likely useful.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "However, as a human species, we can consider that there are more financially sound and eco-friendly methods of innovating with blockchain technology without always directly competing with Bitcoin PoW security. Our innovation, delayed Proof of Work, is one response to this fact, as we will soon discuss.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "po-w-networks-are-expensive" + }, + { + "text": "Miners are Free to Mine Other Networks", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "Another inherent weakness of the PoW consensus mechanism to discuss is the ability of miners to choose alternate networks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "In November of 2017, for a few hours the majority of Bitcoin network miners switched their hash power to a competitor’s PoW network, the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "\"Bitcoin Cash\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": " network. This switch was the result of clever software engineering on the part of the Bitcoin Cash team.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "\"Bitcoin Cash\"", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "The team recognized that most miners are mining Bitcoin only because this network is the most profitable. Therefore, the team conducted a calculated change in the underlying protocol of Bitcoin Cash that caused its mining profitability to dramatically increase. The majority of the world’s Bitcoin miners recognized the higher profitability and switched to the Bitcoin Cash network instantly.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "While Bitcoin Cash’s play for a majority hash rate proved effective only for a matter of hours, their accomplishment raised awareness to a tacit principle in the network: Bitcoin’s hash rate is not bound to Bitcoin. The hardware is free to serve any compatible network the miners choose.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "At the time of the writing of this paper, between Bitcoin and Bitcoin Cash, ~80% of the available hash rate is aligned with the former, and ~20% with the latter. There is speculation in the industry that if the Bitcoin Cash network creates a more favorable position, the balance of hashing power could change on a long-term basis. Furthermore, there are many other blockchain competitors who may gain the attention of Bitcoin’s miners in the future.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "Were a shift in the balance of hash rate to occur, Bitcoin would no longer be the leader of security in the cryptocurrency realm. The price of Bitcoin would likely drop as users realized the resulting lack of security leadership. This might cause more miners to switch to a more profitable network to cover the cost of operating their expensive hardware. As miners abandon Bitcoin, and as users continue to leave, the situation becomes a reversal of the Network Effect. The Bitcoin network would come crashing downwards at an ever-compounding rate.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "This is all theoretical, but it raises yet another concern that we need to illuminate: the security of a blockchain depends on many things, including the potentially fickle support of human blockchain miners. Our innovation, delayed Proof of Work (dPoW), takes this fact into account as we empower members of the Komodo ecosystem with Bitcoin-level security. Before we finally turn to our own solution, we must discuss the primary competitor to the PoW consensus mechanism, Proof of Stake (PoS).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "miners-are-free-to-mine-other-networks" + }, + { + "text": "The Primary Alternative: Proof of Stake", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-primary-alternative-proof-of-stake" + }, + { + "text": "Perhaps the most popular alternative consensus mechanism is Proof of Stake (PoS). In this mechanism, blocks are mined not by miners performing work, but rather by any user \"staking\" their coins on the open network for the right to mine blocks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-primary-alternative-proof-of-stake" + }, + { + "text": "The meaning of \"staking\" has different variations depending on the specific rules set forth by the developers of the unique variant of the PoS consensus mechanism. In general, staking one’s coins means placing them as collateral on the open network in exchange for the right to mine new blocks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-primary-alternative-proof-of-stake" + }, + { + "text": "Users who stake their coins, thereby, can periodically extract a portion of the mempool, mine new blocks, and earn rewards. There is no need to perform any hardware-expensive proof-of-work calculations, as the user’s incentive to be honest is encouraged by the fact that their own wealth hangs in the balance.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-primary-alternative-proof-of-stake" + }, + { + "text": "The Security Risks and Shortcomings of PoS", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "The downside to PoS is that a user who simply leaves a large portion of wealth staked (and therefore continually claims rewards) gradually becomes a centralized point of wealth through the power of compound interest. On PoS networks, monopolies are a constant danger. The owner of a monopoly has power over the well-being of the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "Once a majority of the supply is obtained, the owner gains a position known as \"Nothing at Stake.\" The owner can mine \"false\" blocks to the PoS blockchain and use their own majority supply over the network to declare these \"false\" blocks valid. All other stakeholders on the network must adopt these \"false\" blocks, lest the majority holder use their strength to declare competing blockchain versions as invalid.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "If a non-majority holder attempts to challenge the monopoly holder’s version, the non-majority holder can achieve little more than the loss of coins they placed at stake. Compare this with a non-majority holder in a PoW system: the question over the \"truth\" of the blockchain history depends not upon ownership of wealth, but upon the miner’s innovation and performance. PoW-based systems do not suffer from the risk of monopolies, therefore, as majority stakeholders gain no unique control over the mining of new blocks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "Variations of PoS, including the popular Delegated Proof of Stake (DPoS) and Delegated Byzantine Fault Tolerance (DBFT) systems, do not resolve the underlying issue of monopoly ownership and centralized manipulation. In a vanilla PoS system, the malicious actor needs only to purchase a majority supply of the coin to mine \"false\" blocks. Alternatively, as the PoS network grows to maturity, the collective of majority stakeholders will identify their financial equals, and they may find that they share a mutual interest in disadvantaging less financially established members of the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "In a DPoS/DBFT type system, wherein the ecosystem stakeholders elect and endow delegates with the responsibility to mine new blocks, the malicious actor has only to compromise the integrity of most of the delegates. Thereafter, the compromised delegates can mine \"false\" blocks, and the users of the ecosystem have no direct means to retaliate, beyond abandoning the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "This is not to say that PoS and its variants have no use cases. Indeed, there are scenarios in which PoS can be useful for entrepreneurs. In the Komodo ecosystem, our dPoW consensus mechanism can provide security to networks that use either type of consensus mechanism.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "After the following section summary, we finally turn our attention to dPoW.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-security-risks-and-shortcomings-of-po-s" + }, + { + "text": "A Summary of the PoW Consensus Mechanism", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + }, + { + "text": "In short, the PoW consensus mechanism, as designed by Satoshi Nakamoto, is currently the soundest method of blockchain security. The mechanism solves the Double Spend problem and creates a secure network, capable of transferring financial value. Furthermore, competition among miners and the Longest Chain Rule create fairness on the blockchain. The combination of features provides a high level of defense against two of the most dangerous methods of blockchain destruction—the 51% Attack and the Genesis Attack—assuming a strong overall hash rate on the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + }, + { + "text": "New PoW blockchains can opt to compete directly with Bitcoin’s hash rate, and some level of competition is good for the ethical values and innovative power of the cryptocurrency industry. However, it is not necessary, cost-effective, nor eco-friendly that every new blockchain innovation requiring security should attempt to compete directly with Bitcoin. Not only is this unsustainable, but it is also unreliable, as it depends on the arbitrary choices of the decentralized network of miners around the world.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-summary-of-the-po-w-consensus-mechanism" + }, + { + "text": "The Komodo Solution: Delayed Proof Of Work (dPOW)", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "Komodo presents a technology, the delayed Proof of Work consensus mechanism, that solves the problems described above. Komodo’s unique consensus mechanism provides the same level of security as the strongest PoW network, without attempting direct competition. Instead, Komodo’s consensus mechanism uses the chosen PoW network as a storage space for \"backups\" of Komodo transactions. By this method, in the event of an attempted attack on Komodo’s blockchain history, even a single surviving copy of the Komodo main chain will allow the entire ecosystem to overwrite and overrule any of the attacker’s attempted changes.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "In a key difference separating Komodo from regular PoW networks, our dPoW consensus mechanism does not recognize the Longest Chain Rule for any transactions that are older than the most recent \"backup\" of the Komodo blockchain. For conflicts that may arise which refer to transactions that are older than the most recent \"backup,\" our consensus mechanism looks to the backups in the chosen PoW blockchain (Bitcoin) to find the accurate record.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "Furthermore, entrepreneurs who build independent blockchains (Smart Chains) in the Komodo ecosystem can likewise elect to have backups of their own records inserted into the Komodo main chain. In this manner, the records of the entrepreneur’s chain are then included in the backup that is pushed into the protective hash rate of the main PoW blockchain (Bitcoin). Thus, entrepreneurs and developers in the Komodo ecosystem can have their independent blockchains protected by the hash rate of the chosen PoW blockchain (Bitcoin).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "Therefore, to destroy even the smallest Smart Chain that is employing Komodo’s dPoW security, the attacker would have to destroy: a) all existing copies of the Smart Chain; b) all copies of the Komodo main chain; c) the accompanying PoW security network into which the dPoW backups are inserted (Bitcoin). This endows the Komodo ecosystem with higher than Bitcoin-level security, while avoiding the excessive financial and eco-unfriendly costs.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "In addition, the dPoW security provided by Komodo is not only greater than Bitcoin, but is also more flexible. The Komodo security services are performed by notary nodes, chosen through a stake-weighted vote. Notary nodes have the freedom to switch notarization to another PoW network. Reasons the notary nodes might elect to switch networks could include an event where worldwide miners’ hashing power changes to another PoW network, or the cost of notarization to the current PoW network becomes more than necessary. Through this flexibility, the Komodo ecosystem maintains both a superior level of security and a more flexible and adaptive nature than Bitcoin itself.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-komodo-solution-delayed-proof-of-work-d-pow" + }, + { + "text": "A Note About Komodo’s Iguana Core Technology", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "All the following processes are supported by a deeper Komodo technology called Iguana Core. Readers of the entire Core Technology Discussion sections will note that Iguana Core is featured in each section. This is because Iguana Core is the heart of the underlying technology that enables the vast Komodo ecosystem to work together. The Iguana Core code itself is complex and to fully explain would require a separate whitepaper.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "In short, Iguana Core is a collection of code that serves many purposes. One function of Iguana Core is to empower the blockchain technologies Komodo either builds or adopts to act in coordination with each other. Often, Iguana Core can advance their initial capabilities beyond original expectations. In the case of dPoW, the code that underlies notary-node functionality spawned from Iguana Core technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "Iguana Core is coded in the C programming language—the language of choice of our lead developer, JL777. The C language is designed to enable computers to process high volumes of information in a secure manner at high speed. This aligns with Komodo’s directives to provide security and scalability to our users.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "a-note-about-komodo-s-iguana-core-technology" + }, + { + "text": "An Overview of Notary Nodes", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-overview-of-notary-nodes" + }, + { + "text": "The Komodo ecosystem uses a stake-weighted vote to elect parties who will run sixty-four separate \"notary nodes.\" These notary nodes are the key to transferring the history of transactions performed in the Komodo ecosystem into the protection of the Litecoin hash rate.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "an-overview-of-notary-nodes" + }, + { + "text": "Notary Nodes Are Elected IT Professionals", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-are-elected-it-professionals" + }, + { + "text": "There are no requirements to run in the yearly election, and candidates may form groups of individuals to work together in competing for each of the notary-node positions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-are-elected-it-professionals" + }, + { + "text": "Although the positions are open, voters in the ecosystem are encouraged to favor candidates that exhibit strong professional skill sets in the computer sciences. Notary nodes' primary responsibility is to maintain and adapt the Komodo ecosystem's security as needed.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-are-elected-it-professionals" + }, + { + "text": "Notary Nodes Hash and Notarize the Komodo Ecosystem History", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "The elected notary nodes perform a type of \"backup\" process, using Komodo software. These backups are called \"notarizations.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "Each notarization acts as a marker of the \"true\" history for the Komodo ecosystem at the time the notarization was created.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "Notary nodes write each notarization into the history of the Litecoin blockchain as a permanent indicator of the history of the Komodo ecosystem. This allows any person to observe the notarization in Litecoin and thereby verify data and transaction history anywhere in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "The notary nodes work together in a decentralized and trustless manner to achieve each notarization. The frequency of notarizations varies between two to six notarizations per hour.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "With the notarizations recorded into the Litecoin history, each confirmation on the Litecoin network is also a confirmation of the history of the entire Komodo ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "The primary sacrifice that is made is the time between the creation of a transaction and the confirmation on the Litecoin (LTC) network that confirms the most recent notarization. For this reason, we name our consensus mechanism, \"delayed Proof of Work\" (dPoW).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "The dPoW service used the Bitcoin(BTC) network for security till Mid 2021. But, switched to the Litecoin (LTC) network at the beginning of Notary Node Season 5.", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "The Bitcoin protocol has a proven track record of excellent security and is becoming more secure by the day with more miners joining the network and hash rates climbing.", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "That being said, the Bitcoin network is also becoming costlier and more congested to make transactions due to increased demand and limited on-chain scalability. Read ", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "this blog post", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": " for more info regarding this change.", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "this blog post", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-hash-and-notarize-the-komodo-ecosystem-history" + }, + { + "text": "Notary Node Power is Restricted to History Transfer and Nothing More", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "Our dPoW consensus mechanism is designed to keep the advantages provided by the PoW system, circumvent the excessive financial and eco-unfriendly overhead costs, and avoid the security risks found in a PoS system. We use several methods to this effect.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "Most importantly, all actions a notary node takes are publicly verifiable, and Komodo software running on each full user's machine automatically verifies notary nodes’ actions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "They only transfer a history of activity in the Komodo ecosystem into the protective custody of the Litecoin hash rate – nothing more.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "The only type of power notary nodes hold over the ecosystem is the ability to grant or withhold notarization.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "There are sixty-four notary nodes, and the minimum number of notary nodes required to maintain activity in the Komodo ecosystem is thirteen. Thus, for any activity in the Komodo ecosystem to be excluded entirely would require that at least fifty-one of the notary nodes withhold notarization.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "Such an action would be uneconomic, as this would destroy the access to the financial rewards a notary node receives for performing their duties.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "By this design, notary nodes' primary economic incentive is to properly transfer the records of the Komodo ecosystem into a secure location and to increase the value of the KMD rewards they receive for this service.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-node-power-is-restricted-to-history-transfer-and-nothing-more" + }, + { + "text": "Users Need Only Wait Until They Are Satisfied With a Transaction's Number of Notarizations and Other Security Features", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "users-need-only-wait-until-they-are-satisfied-with-a-transactions-number-of-notarizations-and-other-security-features" + }, + { + "text": "For the average user, when performing a trade of goods and services where security is desired, the user simply needs to wait until the notary nodes complete the notarization process. Once a transaction's history is included in a notarization in the Litecoin blockchain, the only way to break the security protecting their transaction history requires breaking the security of the Litecoin.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "users-need-only-wait-until-they-are-satisfied-with-a-transactions-number-of-notarizations-and-other-security-features" + }, + { + "text": "Komodo software automates the verification process, and developers can tailor their individual communities around the needs of their audience.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "users-need-only-wait-until-they-are-satisfied-with-a-transactions-number-of-notarizations-and-other-security-features" + }, + { + "text": "Through these measures, Komodo’s dPoW consensus mechanism maintains the security innovated by Satoshi Nakamoto, and because dPoW enables the Bitcoin/Litecoin hash rate to serve more independent blockchains than just the single Bitcoin blockchain, dPoW even expands on Nakamoto’s original design.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "users-need-only-wait-until-they-are-satisfied-with-a-transactions-number-of-notarizations-and-other-security-features" + }, + { + "text": "The Notarization Process", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-notarization-process" + }, + { + "text": "Step One: Gathering the Appropriate Data", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "The process of notarization is simple. Roughly every ten to twenty-five minutes, notary nodes perform a special block hash mined on the Komodo blockchain and take note of the overall Komodo blockchain \"height\" (i.e. the number of total blocks in the Komodo blockchain since inception). The notary nodes process this specific block in such a manner that their signatures are cryptographically included within the content of the notarized data.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "(All examples herein are estimated based off this actual KMD notarization to the BTC network:\n", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "https://blockstream.info/tx/313031a1ed2dbe12a20706dff48d3dffb0e39d15e3e4ff936d01f091fb3b8556?expand", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": ")", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "https://blockstream.info/tx/313031a1ed2dbe12a20706dff48d3dffb0e39d15e3e4ff936d01f091fb3b8556?expand", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "The pieces going into the notarization process could look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-one-gathering-the-appropriate-data" + }, + { + "text": "Block Hash", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "block-hash" + }, + { + "text": "This is the \"block hash\" from the KMD blockchain—mined and cryptographically signed by the notary nodes", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "block-hash" + }, + { + "text": "Block Height", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "block-height" + }, + { + "text": "This is the blockchain \"height\" of the Komodo blockchain at the time of notarization (i.e. the total number of KMD blocks ever created)", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "block-height" + }, + { + "text": "Name of Komodo Smart Chain", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "name-of-komodo-smart-chain" + }, + { + "text": "The letters \"KMD\" are added into the notarization mixture to indicate the name of the blockchain to which this notarization belongs", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "name-of-komodo-smart-chain" + }, + { + "text": "Creating a Notarization", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-a-notarization" + }, + { + "text": "The notary nodes will take these three pieces of information and compress them into a format that is more computer-friendly. The result will look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-a-notarization" + }, + { + "text": "The above number can be said to be a cryptographic representation of all that has happened on the Komodo blockchain up to this point in time. According to the Cascade Effect, were an attacker to attempt to go back in the history of the Komodo blockchain and change even a single character of data, and then perform the same hashing formulas in the Komodo code, the number above would dramatically change.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-a-notarization" + }, + { + "text": "This makes the notary nodes’ notarization a useful backup, assuming this number is in a safe location where anyone on the Internet can view and verify it. The notarization enables a single surviving copy of the \"true\" Komodo main chain to identify itself to the rest of the Komodo network, as only the \"true\" data can produce the same result.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-a-notarization" + }, + { + "text": "On the other hand, an incorrect history of the Komodo network will not be able to produce the same notarization. Through the automation in the Iguana Core software that underlies the Komodo ecosystem, all users will align with the \"true\" blockchain history and ignore any malicious actors’ \"false\" attempts.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "creating-a-notarization" + }, + { + "text": "Step Two: Notarizing the Data to a Secure Location", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Naturally, for security purposes this number cannot simply be saved to one person’s local computer, or be written down on a piece of paper. Were the number to be in such a centralized location, a would-be attacker could simply destroy the backup, or replace it with a \"false\" version.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "For the number to be useful, it must be placed in a secure and decentralized location. Here is where Komodo adopts security from another network: Komodo will perform a simple transaction in which it writes the above number into the data history of one of the strongest PoW blockchains (currently Litecoin). This location is as secure as the miners’ hash rate makes it, and the location is decentralized, by nature.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "To place this information in the accompanying PoW network, the notary nodes will use a feature that exists at the core of the Bitcoin/Litecoin protocol when making a transaction. The feature is called \"OP_RETURN,\" and it allows for a message to be added to the blockchain, permanently, as a part of performing a transaction.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "A notable use of the ability to write messages to a PoW blockchain is found in the first actions of Satoshi Nakamoto himself (themselves). In the first Bitcoin block ever mined, Satoshi used a feature like OP_RETURN to include this ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "message", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": ":", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "message", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Nakamoto used a feature called \"coinbase,\" which is similar to OP_RETURN. A\nprimary difference between coinbase and OP_RETURN is that coinbase is used by\nminers when mining a block, whereas OP_RETURN can be used by any user when\nperforming transactions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Readers who have downloaded the Bitcoin blockchain to their local computer, and who possess the knowledge necessary to inspect the raw Bitcoin data, can discover these very words written to their own hard drive. The important thing to understand for our discussion is that any message written to a secure and decentralized PoW blockchain is viewable and verifiable to all.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "The permanence and security of OP_RETURN messages are a core aspect of dPoW’s security. In the event of a powerful attack on the Komodo network, there need be no argument over the correct notarized marker upon which the ecosystem members should rely. The Iguana Core code running at the heart of each user’s Komodo software can continue securing, decentralizing, and distributing the accurate version of the Komodo history as though the attack never occurred.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-two-notarizing-the-data-to-a-secure-location" + }, + { + "text": "Step Three: Notarizing the PoW Network Information Back to the KMD Main Chain", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "One final step remains to complete the loop of security between the KMD main chain and the chosen PoW network. The KMD blockchain must record within its own records the specific location where it placed this backup into the PoW blockchain. This enables the Iguana Core software to identify the location of the most recent notarization.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "To create this reminder, the notary nodes will now gather one more piece of information, this time drawn from the accompanying PoW network: the transaction hash identifying the location of the first notarization. This information could look like this:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "The notary nodes will combine it with all the information that has come before. The result will be transformed, again, into a computer-friendly version:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "This number is a compressed cryptographic representation of everything that has happened in the Komodo ecosystem up to this point in time. The notarization is placed as a transaction message directly into the KMD main chain itself, and thus the notarization enables the Komodo ecosystem to know how to find a reference of its own history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "step-three-notarizing-the-po-w-network-information-back-to-the-kmd-main-chain" + }, + { + "text": "Extending Notarization to Komodo Smart Chains", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "extending-notarization-to-komodo-smart-chains" + }, + { + "text": "dPoW notarization allows Komodo to secure not just one chain, but many chains. Komodo is capable of using this notarization process to \"recycle\" the Bitcoin hash rate onto potentially thousands of other blockchains.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "extending-notarization-to-komodo-smart-chains" + }, + { + "text": "A blockchain that uses Komodo technology to take advantage of this protective service is called a Smart Chain. Komodo provides Smart Chains to interested entrepreneurs and developers in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "extending-notarization-to-komodo-smart-chains" + }, + { + "text": "Each Smart Chain comes with many features, which are discussed in greater detail throughout the Core Technology Discussions section.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "extending-notarization-to-komodo-smart-chains" + }, + { + "text": "Notarization Extends to Each Participating Smart Chain", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-extends-to-each-participating-smart-chain" + }, + { + "text": "This same security process extends to any Smart Chain that is under the protection of the notary nodes. The primary difference between a Smart Chain and the KMD main chain is that the main chain notarizes to an external PoW network (Litecoin), whereas the Smart Chain notarizes to the KMD main chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-extends-to-each-participating-smart-chain" + }, + { + "text": "Notarization Flow", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "To summarize, the notarization process of a transaction on a default PoW-based Smart Chain is as follows.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "A transaction is performed on a Smart Chain", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Miners on the Smart Chain create a block for the transaction", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes create a notarization for the current period of blocks", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes write this notarization to the KMD main chain", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes here also perform a quick special transaction on the Smart Chain to alert this chain's network that the notarization process is starting", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Once this special transaction enters the Smart Chain's mempool, the default Komodo software considers all included transactions to be final. Users and developers can decide for themselves whether to trust this first KMD notarization, or to wait for the LTC notarization to come", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes here also perform a quick special transaction on the Smart Chain to alert this chain's network that the notarization process is starting", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Once this special transaction enters the Smart Chain's mempool, the default Komodo software considers all included transactions to be final. Users and developers can decide for themselves whether to trust this first KMD notarization, or to wait for the LTC notarization to come", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "A few minutes later, notary nodes create a notarization to represent the KMD main chain's history and write this into the LTC chain", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes then perform a special transaction on the KMD main chain to alert all KMD nodes of the notarization", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Notary nodes also perform a special transaction on all Smart Chains to alert all nodes of the LTC notarization", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "At this point, users often consider all transactions on their Smart Chains to have achieved finality", + "tagName": "li", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-flow" + }, + { + "text": "Only the Most Recent Notarization Matters", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "only-the-most-recent-notarization-matters" + }, + { + "text": "As each notarization is built upon all the notarizations that came before, Iguana Core does not need to monitor every notarization ever created. Rather, the software only needs to observe the most recent iteration.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "only-the-most-recent-notarization-matters" + }, + { + "text": "This is favorable for Komodo security, as there is always a possibility that the chosen PoW network (Litecoin) could fail. In this event, the notary nodes would place their next notarization in a competing PoW network (such as Bitcoin/Bitcoin Cash) and the entire Komodo ecosystem would remain secure. The notarizations in the failing PoW network would no longer be required to verify ecosystem accuracy.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "only-the-most-recent-notarization-matters" + }, + { + "text": "Understanding Security and Economic Incentives", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "The nature of mining in the Komodo ecosystem serves as an incentive to motivate the notary nodes to perform their job well. This setup is also a principle method by which the Komodo ecosystem dramatically reduces the overhead costs necessary to function. Portions of the mining rewards are available not just to the notary nodes, but also to all members of the Komodo ecosystem, through various means.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "The Komodo network on a surface-level is a minable network, like other PoW networks. Any technically savvy user can activate a device capable of mining the Komodo network, and thereby process users’ transactions, mine blocks, and receive rewards. For these miners, the Komodo protocol functions in almost the exact same manner as the Bitcoin blockchain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "Understanding the similarities will explain to the reader the motivations for the notary nodes and other Komodo miners to secure the Komodo network. The differences, on the other hand, are explained ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "in another section of the Core Technology Discussions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "in another section of the Core Technology Discussions.", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "(See the section regarding the 5.1% rewards allocated to all users who hold at\nleast 10 KMD in their wallet address. This 5.1% reward is given to users out\nof the funds that would normally be given to a Bitcoin miner as a method of\nminting new Bitcoin coins.)", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "understanding-security-and-economic-incentives" + }, + { + "text": "\"Easy Difficulty\" in dPoW: The Key to Notary Nodes’ Financial Incentives", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "The foundational similarity to understand is that with each block header, clues are provided for miners to find the next valid block hash. The specific clue, \"difficulty,\" changes with each block header.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Under normal circumstances on a PoW blockchain, with each block header the difficulty level can change. The Bitcoin/Litecoin protocol itself decides what the difficulty for the next valid block should be.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "The difficulty is decided based on the amount of overall hash power mining the network. If many miners are active, then the hash rate is high, and the Bitcoin /Litecoin protocol sets the difficulty to a higher number. On the other hand, if the hash rate is low, then the protocol sets the difficulty to a lower number.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Recall that the \"difficulty\" level determines the number of zeros at the beginning of the next valid block hash. The more zeros at the beginning of a valid block hash, the more unlikely each attempt at finding a valid block hash will be.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "When the Bitcoin protocol was in its infancy, the difficulty setting was easy. In fact, the block hash we used earlier as an example is, in truth, the very first block hash ever created—by Satoshi Nakamoto himself (themselves).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "He (they) designed the difficulty setting to encourage the network to find new block hashes once every ten minutes, on average.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "For a computer, to guess within ten minutes a nonce that will produce a block hash beginning with ten zeros is relatively easy. This is so simple, in fact, no special computer is required. Early Bitcoin miners could use nothing more than the average desktop machine, having the CPU—the small heart of the computer—performing the calculations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "As more miners joined the network, however, the Bitcoin protocol automatically increased the difficulty. This maintained the speed at which the pool of all miners discovered new blocks, despite the increased size of the pool. Stabilizing the speed created several benefits, including an amount of economic predictability upon which users can rely.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Today, at Bitcoin’s current level of overall hash power, a valid block hash requires a much higher level of difficulty. Here is a recent successful block hash:", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "There are seventeen zeros, and to find a valid block hash at this level requires a prodigious effort.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "In the race to win blockchain rewards, miners all over the world have built entire farms of specialized equipment for mining. The small CPU of a desktop is no longer useful, and the time of \"easy difficulty\" on Bitcoin has passed.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "easy-difficulty-in-d-po-w-the-key-to-notary-nodes-financial-incentives" + }, + { + "text": "Notary Nodes are Special Miners on the KMD Blockchain", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-are-special-miners-on-the-kmd-blockchain" + }, + { + "text": "Here is where our dPoW consensus mechanism diverges from the Bitcoin/Litecoin protocol’s limitations. In addition to performing the notarizations of the Komodo ecosystem, notary nodes are also a special type of blockchain miner. They have a certain feature in their underlying code that both enables them to maintain an effective and cost-efficient blockchain ecosystem and provides the notary nodes with a financial incentive. The combination of benefits prevents the Komodo ecosystem from falling into the trap of directly competing with other PoW networks for hash-rate security status.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notary-nodes-are-special-miners-on-the-kmd-blockchain" + }, + { + "text": "Each Notary Node Gets One Chance Per Every Sixty-Five Blocks to Mine on Easy", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Each individual node periodically receives the privilege to mine a block on \"easy difficulty.\" In other words, while the rest of the miners in the Komodo ecosystem are mining at a calculated difficulty level, the notary nodes occasionally receive the chance to mine as though they are alone on the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "The notary nodes’ \"easy difficulty\" setting operates in a cyclical manner, with each notary node on its own cycle. At the start of the cycle the notary node holds the \"easy difficulty\" ability until it mines one \"easy\" block. Then the Iguana Core code removes the ability for the next sixty-four blocks. After the sixty-four block period passes, the notary node can once again attempt to capture a block on \"easy difficulty.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Therefore, while everyone else on the network mines at an adjustable level of difficulty according to the normal PoW consensus mechanism (which keeps the overall speed of the Komodo network stable) the notary nodes have a chance to step outside the normal rules. For every sixty-five block period on the Komodo blockchain, the odds that a block will be mined by a notary node, as opposed to a normal miner, are essentially 3:1.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Since the rest of the miners have an adjustable difficulty ratio, it does not matter how many more miners attempt to mine Komodo. Most of the valid blocks will always be found by the sixty-four elected notary nodes, even were the equivalent of entire hash power of the Bitcoin network to switch all its attention to mining Komodo.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "The mining rewards that a notary node receives through this feature are ~50 KMD per day. This reward occurs regardless of KMD’s popularity, market value, or even of the competition from normal KMD miners. The reward notary nodes receive creates an economic incentive for each party controlling a notary node to support and protect the Komodo ecosystem, and to increase the relative value of this daily ~50 KMD reward.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "each-notary-node-gets-one-chance-per-every-sixty-five-blocks-to-mine-on-easy" + }, + { + "text": "Komodo’s Protective Measures in Action", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "There are myriad ways that an attacker can assail a blockchain project, and the Komodo ecosystem is well prepared. In this foundational paper, we only discuss two of the most crucial attacks—the 51% Attack and the Genesis Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "komodo-s-protective-measures-in-action" + }, + { + "text": "Notarizations Provide a Defense Against Both the 51% Attack and the Genesis Attack", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "By relying on the notarizations in the chosen PoW network’s hash rate (Litecoin), users in the Komodo ecosystem are well protected from both the 51% Attack and the Genesis Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Recall that in a 51% Attack, the attacker first makes a transaction and then 'erases' it by providing 51% of the total hash rate to create another blockchain branch where the transaction never occurred. In the Genesis Attack, the attacker recreates the genesis block of a blockchain and mines an entirely false history.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "For either of these attacks to play any part in the Komodo ecosystem, the successful attack would have to destroy every transaction at every level it is recorded.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarizations-provide-a-defense-against-both-the-51-attack-and-the-genesis-attack" + }, + { + "text": "Defense Against the Genesis Attack", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-genesis-attack" + }, + { + "text": "First, let us consider the implications of the notarization process provided against the Genesis Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-genesis-attack" + }, + { + "text": "Once an independent blockchain has even just a single transaction pushed through the notarization process into the chosen PoW network, that notarization protects against the Genesis Attack.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-genesis-attack" + }, + { + "text": "To successfully complete a Genesis Attack against a Komodo Smart Chain, the attacker would have to destroy the chosen PoW network’s records from that moment going forward. The attacker would also have to destroy the KMD main chain from that moment forward, and the entire independent Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-genesis-attack" + }, + { + "text": "The likelihood of achieving this task is effectively as probable as performing a Genesis Attack on the chosen PoW network itself.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-genesis-attack" + }, + { + "text": "Defense Against the 51% Attack", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-51-attack" + }, + { + "text": "The Komodo ecosystem is also well protected against the 51% Attack. Consider an attacker attempting to create a malicious transaction on a default PoW-based Smart Chain in the Komodo ecosystem. The attacker creates their transaction and sends it to the Smart Chain's PoW network for processing.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "defense-against-the-51-attack" + }, + { + "text": "Before Notarization", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "During the waiting period for notarization, on a default PoW-based Smart Chain, any transaction is vulnerable to the attacker's 51% Attack. The attacker would simply wait until the opportune moment to attack their victim by providing 51% of the total hash rate to a new version of the independent Smart Chain wherein the transaction never occurred. This new chain version, having more PoW, would override the original chain history with the transaction before the notary nodes create the next notarization, and therefore the unfortunate recipient of the transaction would no longer have the funds from the vanished transaction.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "On a default PoW-based Smart Chain, therefore, the recipient of any transaction should always wait until the notarization process is underway before exchanging their valuables.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "An important aside here is that Komodo Smart Chains have additional settings\nbeyond the default PoW-based setup that reduce the time required to wait for\nnotarizations. In some instances, the waiting time can be eliminated. The\n", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "Channels Antara Module", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": " is an effective\nexample, as this module allows instantaneous secure transactions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "Channels Antara Module", + "tagName": "a", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "before-notarization" + }, + { + "text": "Notarization to the KMD Main Chain", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "However, if the attacker fails to perform their 51% Attack before the notary nodes notarize to the KMD main chain, the difficulty of successfully attacking their victim increases. Now, the attacker must successfully perform the 51% Attack against both the KMD main chain and the independent Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "Attacking the KMD main chain is difficult to achieve, as it is not a normal PoW blockchain. Rather, this chain is designed to withstand attacks. The attacker would have to compromise many of the notary-node machines while simultaneously performing a 51% Attack against both the KMD main chain and the independent Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "While the KMD main chain provides a certain level of protection, this chain is not the ultimate goal. The KMD chain is merely a transfer point before moving the notarization data to the LTC main chain, as LTC is dramatically more secure. Therefore, while entrepreneurs, developers, and users await notarization to LTC, they should decide for themselves how much trust they wish to place in the system at this point of the process.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "A frequent concern that many newcomers have here can be described as a fear that the notary nodes could potentially falsify information about a transaction on a Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "This concern sometimes mistakenly leads some observers to believe that notary nodes are a centralized group who are providing financial governance to the ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "This is neither true nor possible.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "Notary nodes are ", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "not", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": " arbiters of truth.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "As stated before, all information that goes into a notarization is generated by the Smart Chain network and is publicly verified by all nodes on the network. This includes the notarization itself.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "Notary nodes' sole additional power is the ability to sign a transaction that records this notarization to the network. Either notary nodes perform this service, or they do not. There are no other options available to them.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "Any attempt by the notary nodes to falsify information in a notarization would be automatically rejected by all users of the Smart Chain network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-the-kmd-main-chain" + }, + { + "text": "Notarization to LTC", + "tagName": "h4", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-ltc" + }, + { + "text": "After another ten to twenty minutes, the notary nodes will perform the notarization process for the KMD main chain. Here, they gather all the information for the entire ecosystem, create a hash, and record this hash to the LTC main chain. Once this is completed, they inform the entire ecosystem through a special transaction on the KMD main chain, and on each individual Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-ltc" + }, + { + "text": "At this point, one can argue that the attacker's job is nigh impossible. To 51% Attack the Smart Chain, the attacker must compromise LTC, KMD, and the Smart Chain. This would require an incredible amount of equipment and expertise, and therefore most users in the Komodo ecosystem may now feel safe to consider all transactions to have achieved permanent finality.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-ltc" + }, + { + "text": "Therefore, any record that has at least one full notarization has a fortress of security at its guard. So long as users and developers are mindful to wait for the desired number of notarizations to secure their payments, both the 51% Attack and the Genesis Attack are highly unlikely either to be successful, or to provide economic value to the would-be malicious actor.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-ltc" + }, + { + "text": "Nevertheless, we remind all users of our ecosystem to consider their own vigilance and mindfulness as the most effective protection against the would-be attacker. Users, entrepreneurs, and developers utilize all aspects of the Komodo network at their own risk.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "notarization-to-ltc" + }, + { + "text": "Considering an Attack on the Notarization Process", + "tagName": "h3", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "To create a notarization for the KMD main chain, the minimum number of notary nodes required is 13. If the notary nodes themselves come under attack and must work to maintain access to the Internet, just 13 of the full 64 are required for the Komodo ecosystem to continue its operations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "In the possible event of a disconnect from the minimum number of notary nodes, chains in the Komodo ecosystem should simply be on the alert. Users, developers, and entrepreneurs would simply need to wait for the notary nodes to regain access to the Internet and resume the notarization process before considering any transaction final.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "For this reason, the position of a notary node is held with high importance, and the parties which gain these positions are measured foremost by their Information Technology experience and capabilities. Komodo stakeholders are responsible to vote for candidates that are the most qualified to perform in the notary-node duties.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "considering-an-attack-on-the-notarization-process" + }, + { + "text": "The dPOW Consensus Mechanism is Inherent in all Komodo Smart Chains", + "tagName": "h2", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "The notarization for the Smart Chain is performed by the notary nodes as a service to the independent developer and entrepreneur.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Notary nodes create a notarization of the Smart Chain and write it into the KMD main chain. Then they write their actions into the Smart Chain itself. This allows Iguana Core (running at the heart of the Smart Chain) to identify where its most recent notarization can be found.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "The notarization process cycles every ten minutes, assuming the Smart Chain’s network is consistently active. If the network has periods of inactivity, the notary nodes halt the process (to save against unnecessary notarization costs) and reactivate as soon as new transaction activity appears on the Smart Chain’s network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "We invite the reader to consider that as each Smart Chain can support thousands of transactions per minute, this makes the combined ecosystem capable of supporting millions of transactions per minute. This includes cross-blockchain interoperability and Smart Chain clustering, via our atomic-swap powered technology and our Antara Framework. This makes Komodo among the most scalable of financial-technology solutions in existence, and capable of competing with the transaction volumes of fiat networks.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Naturally, as each level of notarization takes time to perform, there is an additional delay for Smart Chains as compared to the KMD main chain. A Smart Chain’s history is notarized into the KMD main chain approximately every ten minutes, assuming constant activity. This notarization will then be pushed through the notarization process into the chosen PoW network (Bitcoin). We estimate that a transaction performed on a Smart Chain will receive the KMD main chain’s protection within approximately ten minutes, and will receive the Bitcoin hash rate’s protection in approximately twenty to thirty minutes.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Another difference between the KMD main chain and a Smart Chain is that the notary nodes only mine the KMD main chain. Smart-chain developers are responsible to create any required network of miners to process their Smart Chain’s transactions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "This does not need to be a full network of mining farms, such as those in Bitcoin/Litecoin. Rather, power only needs to be of a level necessary to process transactions, and to provide any desired level of hash-rate security. For a small business with intermittent periods of transaction activity, a single, dedicated, full-time server may be enough. Larger businesses can scale as desired and can also work to attract a network of freelance miners.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Furthermore, developers of Smart Chains need not create their chain so that it relies solely on a PoW consensus mechanism. Instead, developers can utilize Antara Customizations (discussed later in the Core Technology Discussions section and elsewhere in this documentation). These Antara Customizations allow the developer to utilize a hybrid consensus model that combines Proof-of-Stake (PoS) with Proof-of-Work (PoW).", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "The PoS consensus mechanism does not require high electrical costs to maintain a basic level of network security. Therefore having a certain percentage of blocks mined via PoS can increase security during the ten-minute waiting period before notarization.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "There are also various members of the Komodo ecosystem who mine for profit, and can be motivated to assist Smart Chain developers in securing a network in exchange for block rewards.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "This combination of options available to a blockchain entrepreneur dramatically reduces the overhead costs and effort the entrepreneur and developer would otherwise have to allocate to a network of high-hash rate miners. These freed resources of the entrepreneur and developer can therefore be allocated to other uses in their business models. The total yearly cost for the Komodo notary nodes to notarize the KMD main chain into the currently chosen PoW chain, Litecoin, is approximately ~180 LTC/year.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "This security mechanism is not limited to Smart Chains created within the Komodo ecosystem. In fact, Komodo’s Blockchain Security Services are available to any existing blockchain. With Komodo, any blockchain can be protected with the power of the Litecoin hash rate for a tiny percentage of the cost.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + }, + { + "text": "Thus, an entrepreneur in our ecosystem can have their own independent blockchain that is backed up by the hash rate of the Litecoin mining network, at only a fraction of the cost. In the following sections, we discuss the formation of a new Komodo Smart Chain, the method of distribution and trading using our atomic-swap technology, Komodo DeFi Framework, and our \"smart contract\" like technology, the Antara Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/delayed-proof-of-work", + "closestElementReference": "the-d-pow-consensus-mechanism-is-inherent-in-all-komodo-smart-chains" + } + ], + "start-here/core-technology-discussions": [ + { + "text": "Introduction", + "tagName": "h1", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "The Komodo project focuses on empowering users with Freedom through\nblockchain technology. There are many forms of Freedom that Komodo can provide, and we currently focus on empowering two types of users: the blockchain entrepreneur, and the average cryptocurrency investor. Together, our community of entrepreneurs, investors, and other users form an economic ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "The foundational pillar of the Komodo ecosystem is security. Komodo provides a unique and innovative form of security that is as strong as the Bitcoin network, yet does not require the incredible cost. Every member of the Komodo ecosystem receives the benefits of this security. The investor relies on it for everyday use. The entrepreneur relies on it to protect their blockchain innovation at a cost that is affordable even to small businesses and startups.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "Another of Komodo’s powerful technologies is a new method of trading cryptocurrencies directly from one person to another. It is a new kind of \"decentralized exchange.\" Our decentralized exchange removes all forms of middlemen, vouchers, and escrow services. It relies on an underlying concept called the \"atomic swap\", and we are the leaders in this technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "Our atomic-swap powered decentralized exchange serves both the investor and the blockchain entrepreneur.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "For the investor, they can trade cryptocurrencies without having to pass through a centralized exchange, which can be an arduous and even dangerous process. They also do not have to use an escrow service, voucher, nor even an intermediary coin—not even Bitcoin. Furthermore, there is no registration process required, nor are there any withdrawal limits. We currently support approximately 95% of the cryptocurrencies in existence, including Bitcoin-protocol based coins, Ethereum, and Ethereum-based ERC20 tokens.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "For the entrepreneur, our decentralized exchange enables the release of new products to the world without middleman involvement. Furthermore, even entrepreneurs who have previously built other blockchain projects outside our ecosystem can easily feature their coin on our decentralized exchange. The only requirement is that the blockchain product have the proper security elements in the core of the blockchain’s code.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "Komodo also has powerful privacy features built into our platform. When activated, these features allow the investor to trade and purchase goods and services within their right to privacy. This also allows the entrepreneur to release their product, and to crowdsource funds, from an audience that may prefer to maintain this privacy.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "There are many other technologies and features in the Komodo ecosystem, and we are experiencing a rapid growth of both entrepreneurs and investors.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "The documentation in the ", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "Core Technology Discussion", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": " section provides an in-depth discussion about Komodo’s unique security features, our decentralized exchange, the method of releasing new products on it, and our native privacy features.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "We welcome feedback from our readers. If you have any questions or concerns over the course of reading this material, please reach out to our team directly. You may find our contact information on our accompanying website: ", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "https://komodoplatform.com/en/", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "https://komodoplatform.com/en/", + "tagName": "a", + "path": "start-here/core-technology-discussions", + "closestElementReference": "introduction" + }, + { + "text": "Note on Changes Since Whitepaper Creation (cr. 2019)", + "tagName": "h2", + "path": "start-here/core-technology-discussions", + "closestElementReference": "note-on-changes-since-whitepaper-creation-cr-2019" + }, + { + "text": "The documentation in this section is based on the Komodo whitepaper that was written in 2017. The content was updated in July 2019 to ensure technical accuracy. We recommend that all newcomers read this documentation to enhance their understanding of the nature and design of Komodo.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "note-on-changes-since-whitepaper-creation-cr-2019" + }, + { + "text": "Since 2017, the Komodo team has greatly advanced the technologies on the Komodo Platform, and these new technologies are discussed in other areas of the technical-documentation website.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "note-on-changes-since-whitepaper-creation-cr-2019" + }, + { + "text": "Also, zero-knowledge transactions are still available on Komodo-based blockchains, but they are no longer available on the KMD main chain. This change was made largely in response to community feedback and industry developments.", + "tagName": "p", + "path": "start-here/core-technology-discussions", + "closestElementReference": "note-on-changes-since-whitepaper-creation-cr-2019" + } + ], + "start-here/core-technology-discussions/initial-dex-offering": [ + { + "text": "Initial DEX Offering (IDO)", + "tagName": "h1", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "Abstract", + "tagName": "h2", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "There lies great power in the idea that any person, regardless of nationality, creed, or background, can obtain funding to innovate and prosper. An integral tenet of blockchain technology is \"decentralization.\" By decentralizing systems, we reduce the number of control points that can be compromised and manipulated.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "Decentralization plays a more common role in our new cryptocurrency economy, but there is one area of the market that remains centralized and vulnerable: the initial coin offering (ICO). The cryptocurrency industry needs a solution, and Komodo presents an answer with our initial DEX offering (IDO) technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "In today’s common ICO model, the high level of centralization creates many problems. Third parties can block or manipulate entrepreneurs’ efforts to innovate and prosper. The centralized location of releasing an ICO blockchain product is vulnerable, allowing whales, hackers, and human error to corrupt or destroy an entrepreneur’s efforts. The negative experience of users in these situations can also impact the perception and adoption of cryptocurrency. Furthermore, the traceable nature of an ICO prevents society from crowdsourcing and purchasing within our inherent right to barter in private.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "The IDO model, as created by Komodo Platform, overcomes these challenges. It provides the necessary technology to create and release a blockchain product to the world with the full power of decentralization.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "Entrepreneurs building on our platform can begin by creating a Smart Chain, and our technology simplifies this process. One need only install the necessary software, execute a few commands on a command prompt, and then establish a connection between two or more Komodo-enabled devices as explained below. Komodo’s core technology will do the rest of the work necessary to create a fully independent blockchain, empowered with an array of features.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "Our dPoW technology is a key feature that provides the necessary security to protect the integrity of the blockchain. Use of dPoW is optional, and since Smart Chains in the Komodo ecosystem are independent by nature, entrepreneurs can discontinue dPoW services at will.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "After creating a blockchain, the entrepreneur then uses our software to release the project to the world. Komodo DeFi Framework — our decentralized exchange — is a useful software solution to conduct an Initial DEX Offering (IDO). Because Komodo DeFi Framework relies on atomic swaps, enabling you to trade value across any supported blockchain protocol. No third-party manipulators can prevent the entrepreneur from their crowdsourcing and innovative endeavors.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "Through ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "the privacy technology", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": " available on Komodo Smart Chains, IDO participants can purchase the product within their inherent right to barter in private if they take some precautions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "the privacy technology", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "Do note that, ERC20 tokens, ETH forks/clones, QRC20 tokens, QTUM forks/clones, and most UTXO type blockchains can also be distributed through an IDO using Komodo DeFi Framework. While these types of coins/tokens don't receive other benefits of the Komodo Ecosystem like the dPoW service and UTXO smart contracts (CC modules), they can still be traded on Komodo DeFi Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "abstract" + }, + { + "text": "The Challenges in Current ICO Platforms", + "tagName": "h2", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-challenges-in-current-ico-platforms" + }, + { + "text": "Specific Weaknesses in the Centralized ICO Model", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "specific-weaknesses-in-the-centralized-ico-model" + }, + { + "text": "There are many weaknesses present in today’s Initial Coin Offering (ICO) model. Several notable weaknesses include third-party discrimination, vulnerability to theft and human error, and a lack of privacy.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "specific-weaknesses-in-the-centralized-ico-model" + }, + { + "text": "Third-Party Discrimination", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination" + }, + { + "text": "An entrepreneur seeking to serve their intended audience may experience adverse intervention from a third party. The antagonists may display personal and malicious intent, regardless of the value of the entrepreneur’s innovation.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination" + }, + { + "text": "Centralization of Technology: Theft and Human Error", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "centralization-of-technology-theft-and-human-error" + }, + { + "text": "Today’s ICOs are typically conducted in escrow, where the purchasers must transfer money to one location for holding. This typically occurs through a single website, and the cryptocurrency funds are held on a centralized collection of server(s).", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "centralization-of-technology-theft-and-human-error" + }, + { + "text": "The user must wait while the ICO administrators first verify the transactions and distribute the coins. During this time the funding is centralized, and therefore vulnerable to thieves and human error.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "centralization-of-technology-theft-and-human-error" + }, + { + "text": "Lack of Privacy", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "lack-of-privacy" + }, + { + "text": "Because ICO transactions are highly traceable, it is difficult, if not impossible, to perform ICOs within our right to barter in private.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "lack-of-privacy" + }, + { + "text": "Third-Party Discrimination via the Centralized ICO", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "The centralized ICO process fails to harness the borderless nature of blockchain technology. A key strength of any blockchain is that any human capable of accessing the technology can activate the blockchain, regardless of their geographical location or social status. Thus, anyone can provide yet another verifiable record of the transaction history, and this decentralization provides a crucial element of security to the blockchain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "An ICO innovator, therefore, may prefer to use a blockchain platform that transcends man-made barriers, to protect their innovation. Circumventing man-made barriers could be integral to the blockchain’s survival because the element of decentralization prevents malicious actors from creating subjective borders around the blockchain records and then using authority to falsify and manipulate.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "This creates a conundrum. As a human race, we also find strength and empowerment in subjectively defining our own demographics for various reasons, whether they be to form companies, cultures, communities, etc.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "While we find the ability to create subjective demographics useful, it contrasts with the borderless nature of blockchain technology. Members of one demographic may desire to participate in a specific ICO, but another demographic may find this unfavorable. Therefore, the second party might try to forestall progress. The paradox lies in the fact that for the underlying blockchain product to maintain its integrity, it must serve both communities without regard to any man-made barrier between them.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "The problem compounds even further as we observe that on a decentralized blockchain platform, a new ICO product is capable of functioning anywhere there is access to the underlying technology. On a decentralized platform, once a new blockchain product is released any person from either demographic is now able to utilize it. The sentiment of either demographic is irrelevant. The problem becomes most pronounced if members of a competing group attempt to even maliciously prevent an innovation out of selfish reasons. Thus, the innovator must have the option to protect against would-be malicious competitors.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "The overall centralized nature of today’s ICO process, therefore, presents a problem. Entrepreneurs who are not able to navigate the adverse effects of an inhibiting third party may be unable to realize their creative potential.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "third-party-discrimination-via-the-centralized-ico" + }, + { + "text": "Centralization of ICO Technology: Hackers and Human Error", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "centralization-of-ico-technology-hackers-and-human-error" + }, + { + "text": "Yet another issue with the traditional ICO model is that the technology upon which an ICO is released is also centralized, which presents vulnerabilities due to human foibles.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "centralization-of-ico-technology-hackers-and-human-error" + }, + { + "text": "Hackers and Human Error", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "Because all coins of an ICO typically process through one centralized point during the purchasing period, the entire supply is vulnerable to any person with access to the node. Therefore, both malicious and clumsy human agents can destroy an ICO. The data holding the cryptocurrency can be damaged, stolen, or simply lost through incompetence.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "An entrepreneur can also consider that in today’s ICO model both the funding provided by the purchasers, as well as the actual ICO coins that the entrepreneur intends to sell, remain on the centralized node for a long period of time. It is not just one side of the crowdsourcing endeavor that is at risk, but both.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "This central point of failure can be catastrophic for all participants.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "hackers-and-human-error" + }, + { + "text": "The Right to Barter in Private", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "Finally, the lack of current privacy options in the ICO process inhibits blockchain participants from purchasing within our right to barter in private. This right to privately exchange goods and services extends further into history than the written word. We have, as a species, utilized this right to organize into communities, institutions, and even nations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "Many of humanity’s most meaningful advancements in art, technology, and other human endeavors began in situations where the creator had the security of privacy in which to explore, to discover, to make mistakes, and to learn.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "The right to barter in private, however, is under modern threat as the recent monumental and historical phenomenon known as \"The Internet of Information\" permits many kinds of people to quietly and without inhibition monitor other people’s shopping and bartering behavior. This is a dangerous development, as it destroys the privacy that empowers much of humanity’s personal growth. We must reserve our right to barter in private, for we observe that there is a myriad of ways in which a common person may explore personal growth in an economic environment.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "The highly traceable nature of today’s centralized ICO model is in direct contradiction to this human need.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-right-to-barter-in-private" + }, + { + "text": "The Blockchain Industry Needs a Solution", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-blockchain-industry-needs-a-solution" + }, + { + "text": "Together, these issues show that the current state of the ICO market is plagued with limitations that inhibit freedom, security, entrepreneurship, and even human growth. The cryptocurrency industry needs a solution to these problems, and Komodo presents an answer.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-blockchain-industry-needs-a-solution" + }, + { + "text": "The Initial DEX Offering", + "tagName": "h2", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-initial-dex-offering" + }, + { + "text": "The Komodo ecosystem presents a solution, the initial DEX offering (IDO), that solves these issues and even adds new possibilities to the cryptocurrency market.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-initial-dex-offering" + }, + { + "text": "The decentralized nature of the IDO enables the entrepreneur to release a blockchain product beyond the reach of a malicious third-party influencer.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-initial-dex-offering" + }, + { + "text": "Furthermore, through our decentralized exchange, Komodo DeFi Framework, the IDO allows an entrepreneur to release their product in a manner that mitigates and even eliminates many of the issues regarding hackers and human error.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-initial-dex-offering" + }, + { + "text": "With the advantage of Komodo’s privacy technology, the participants in an IDO are empowered with their right to barter in private.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-initial-dex-offering" + }, + { + "text": "The Process of Creating a New Blockchain in the Komodo Ecosystem", + "tagName": "h2", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "Formerly, coding and generating the blockchain itself were the most difficult aspects of the development process. Now, the Komodo team has simplified the process into easy steps. Through Komodo’s Iguana Core technology (introduced in Part I), the entrepreneur can create a new independent blockchain by entering just two simple commands in the command prompt of their computer.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "The following steps rely on one of Komodo’s underlying software processes that run in the background on a user’s computer. The name of this software is the \"Komodo daemon,\" or ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": ", for brevity. ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": " is rooted in Iguana Core technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-process-of-creating-a-new-blockchain-in-the-komodo-ecosystem" + }, + { + "text": "The First Command to Create a New Coin", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "The first part of the command, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "./komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": ", initiates a new instance of komodod.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "By default, the initial ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "./komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": " command executed alone would launch the Komodo main chain, KMD, on the user’s computer. However, the next part of the command tells komodod to behave differently.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This command tells komodod not to launch the main KMD chain, but rather to launch the chain that has the indicated name.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This tells komodod how many total coins there should be in this chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "This tells ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": " that the user desires to mine this network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "Komodod now begins the automated process of creating a new Smart Chain in the Komodo ecosystem. Komodod will first make a fresh and empty clone of the KMD main chain (though it will not yet generate the actual coins), with only a few differences to the underlying nature of the chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-first-command-to-create-a-new-coin" + }, + { + "text": "The Features of the New Smart Chain", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "There are several primary differences between a Smart Chain and the main Komodo chain. For example, unlike the main Komodo chain, the Smart Chain will not automatically generate 5.1% rewards for all wallet addresses holding coins. Furthermore, the Smart Chain’s dPoW consensus mechanism is built to notarize to the KMD main chain (as opposed to LTC).", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Some of the differences reveal strong advantages held by members of the Komodo ecosystem. By design, this Smart Chain is capable of automatically adopting any updates that the Komodo core development team add to the framework. The Smart Chain also has a built-in capacity within the framework to allow the entrepreneur to code new rules.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "For example, the entrepreneur may decide not to use a PoW consensus mechanism, but may instead prefer PoS. Other changes can also be made, according to the entrepreneur’s imagination and developer knowledge. So long as the new code that the entrepreneur adds to the Smart Chain does not interfere with the overall framework, the Smart Chain will smoothly integrate with the rest of the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "For the purposes of our discussion, this new Smart Chain is otherwise the same as the Komodo main chain, including the features to communicate natively with other blockchains via Komodo DeFi Framework. The reader may note that this new Komodo Smart Chain is not a colored-token running on top of a parent blockchain, as is often the case in other blockchain ecosystems (like ERC20 tokens on the Ethereum network). Instead, this Smart Chain is a unique and independent blockchain unto itself.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "This empowers the entrepreneur with significant advantages over other blockchain ecosystems. The Smart Chain can run on its own nodes, act according to whatever rules the entrepreneur can imagine, and can scale according to its own audience. Should a Smart Chain in the Komodo network experience an explosion of activity, the overall Komodo ecosystem will not be negatively impacted. This independence grants a significant competitive advantage in the form of overall security, speed, and ease of use for end-users.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Consider the advantage of developing an entrepreneurial product as a fully independent blockchain. Should the entrepreneur desire at a future point to leave the Komodo ecosystem for any reason, they are free to take their blockchain product with them.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-features-of-the-new-smart-chain" + }, + { + "text": "Generating and Mining the New Coins", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "Let us return now to the moment after the entrepreneur executes the first command in the command prompt, and komodod creates a fresh and empty clone of the Komodo main chain. While the instance of the komodod program (running on the entrepreneur’s local computer device) will create the necessary code for the new Smart Chain, komodod will not yet generate the coin supply itself. Komodod instead will wait for the next few steps to occur.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "The reason for the wait is that a blockchain’s essence depends upon existing not in isolation, but in a network of multiple devices. This is the nature of decentralization. Komodod will wait until it receives a signal from another device, thus indicating that it has a peer with which to form the Smart Chain network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "generating-and-mining-the-new-coins" + }, + { + "text": "The Entire Coin Supply is Distributed in the Genesis Block", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Typically, the entire coin supply for the IDO is created and distributed immediately to the device that mines the first block, the Genesis Block. The code performs this distribution as a one-time reward for discovering the first valid block hash.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Having established a secure connection with a second device, the entrepreneur will enter the following command on the second device.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Note that the first three elements of the command, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "./komodod", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": ", ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "-ac_name", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": ", and ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "-ac_supply", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": ", are the same. It is important that the parameters inserted into these commands match exactly. Otherwise, the instances of komodod running on the separate devices will ignore each other, and the coin will not be mined.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "In the second device, the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "-gen", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": " command is not present. In this circumstance, we are assuming that the entrepreneur wants to capture the entire coin supply on the first device. Technically speaking, assuming the entrepreneur has ownership over both devices, it does not matter if both devices initiate the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "-gen", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": " command. Both devices will attempt to mine the first block and the superior device will receive the coin supply.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "There is another key difference in the command.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "With the execution of the IP address command, the second device knows to look across the available connection (the Internet, VPS service, etc.) for the first device, which is already running an instance of komodod and the new coin. The command here simply tells the computer the proper IP address of the first device.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "As soon as these two devices connect, having all the proper komodod software running and set in place, the mining begins. One of the devices will mine the first block and instantly receive the total coin supply of the entire blockchain into the user’s chosen wallet.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Both devices sync this information to each other, and the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "ENTREPRENEUR’S COIN", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": " now exists in the world. The entrepreneur can also add more and more devices to the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-entire-coin-supply-is-distributed-in-the-genesis-block" + }, + { + "text": "Notarizing to the Komodo Main Chain", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "To receive the security of the dPoW consensus mechanism, the entrepreneur simply needs to have the elected notary nodes add the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "ENTREPENEUR’S COIN", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": " to their internal list of coins to notarize. This will empower the entrepreneur’s product with the same verifiable and decentralized security of the Komodo main chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "The process of adding a new notarization service can be executed by the notary nodes with just a simple command. While we are at this early stage of development, this sign-up process for new IDO products is not yet automated. In the future, we intend to automate as much of this process as possible.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "There is a fee for receiving notarization services to help cover the business costs associated with notarization (recall that all notarizations are financial transactions by nature).", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "Entrepreneurs are thus able to use the Smart Chain’s native dPoW consensus mechanism to notarize to the Komodo main chain to create a secure backup of the coin’s history. Even in the event of an attack at this early stage of existence, the entrepreneur can rest assured that their product will survive, so long as one copy of the blockchain’s history exists.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "Everything is set on the backend for the entrepreneur, and they are now fully prepared to begin the IDO process. Naturally, we understand that for many potential entrepreneurs in the Komodo ecosystem, this process is unfamiliar territory. We encourage interested entrepreneurs to reach out to our team at ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "partners@komodoplatform.com", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": " for guidance during development.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "notarizing-to-the-komodo-main-chain" + }, + { + "text": "The Distribution of Coins", + "tagName": "h2", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-distribution-of-coins" + }, + { + "text": "Observations on the Centralized ICO Method", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "observations-on-the-centralized-ico-method" + }, + { + "text": "Previously, the entrepreneur at this point would have been required to go through a centralized ICO process.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "observations-on-the-centralized-ico-method" + }, + { + "text": "This could have required several cumbersome and possibly dangerous steps. For example, the entrepreneur would begin gathering cryptocurrencies from their audience to personally hold in escrow before the process of matching purchases to the new blockchain coin were conducted. Until the distribution of the new blockchain coin is completed, the purchasers have to trust the issuer.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "observations-on-the-centralized-ico-method" + }, + { + "text": "To distribute these coins, the entrepreneur had two primary options. They could have created and distributed a digital software wallet capable of holding the entrepreneur’s coins. The entrepreneur would then have to send all the appropriate coins to each wallet address, according to the process they established during their ICO. This process may be error-prone as the issuer either has to do it manually or write a custom program to do it.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "observations-on-the-centralized-ico-method" + }, + { + "text": "Or, the entrepreneur would have to make formal arrangements with another service to manage this process, such as with a centralized exchange, and then be required to act within the centralized exchange’s arbitrary framework.\nThe centralized ICO process can be arduous and, at times, disastrous.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "observations-on-the-centralized-ico-method" + }, + { + "text": "Enter the IDO", + "tagName": "h3", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "enter-the-ido" + }, + { + "text": "Powered by Komodo’s Komodo DeFi Framework & Privacy Technology", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "The Komodo IDO model is an extension of Komodo’s Komodo DeFi Framework technology. Komodo DeFi Framework is an atomic swap powered, decentralized exchange. It enables users to directly exchange cryptocurrencies from one person to another without third-party involvement (i.e. no centralized exchanges, escrow services, vouchers, etc.). Furthermore, as the IDO model is entirely decentralized, anyone can use it at will. There are no centralized authority figures capable of creating artificial control points that can be manipulated at the expense of the users.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "To begin the distribution process, the entrepreneur first chooses how many nodes they would like to use for the distribution. Nodes can be any type of machine capable of connecting to Komodo DeFi Framework. Typically, a small business entrepreneur may choose to use server machines. Server capacity can be rented online, and the servers can be distributed geographically throughout the world if desired.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "While renting a multiplicity of servers may be the method of choice for an established small business, it is not a requirement. An owner of an even smaller business, operating on a low budget, can simply use their own computer(s), geographically stationed nearby for convenience. On the other hand, a large corporation could use the server capacity they already own. The number and strength of the machines is a choice made by the entrepreneur.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "Having decided the method of distribution, the entrepreneur will then prepare the total supply of coins. (We are assuming the coins are still located on the first device that mined the entrepreneur’s Genesis Block.) The entrepreneur will first break down the total collection of coins into smaller digital pouches and distribute them to the Komodo DeFi Framework nodes previously created. These small bags of coins are ultimately what will be traded on Komodo DeFi Framework with their audience.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "When the entrepreneur sends the coins to all their nodes throughout the Komodo DeFi Framework network, they are distributed to each node's wallet through a normal transaction. With the coins distributed as desired, the entrepreneur then elects the time and date when each bag of coins will be available for purchase. When a bag of coins becomes available on Komodo DeFi Framework for trading, members of the Komodo ecosystem simply purchase the coins using atomic swaps.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "powered-by-komodo-s-komodo-de-fi-framework-and-privacy-technology" + }, + { + "text": "The Many Solutions of the IDO Model: Security, Privacy, Decentralization, and Freedom", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "This method of conducting an Initial DEX Offering mitigates and circumvents the issues found in a centralized ICO. The entire process is conducted in a decentralized manner. The IDO entrepreneur has direct access to their audience, as no centralized human authorities are acting as middlemen.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "The IDO process implements solutions that prevent both methods of theft that are possible in the centralized ICO process. Unlike the centralized ICO, once the distribution of the bags takes place the effect of their distribution adds a layer of security from a would-be hacker. The hacker can only steal funds at the node they manage to penetrate. Were the hacker to steal coins before the actual IDO, the entrepreneur would have the option to simply create a ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "NEW ENTREPRENEUR’S COIN", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": " again, without losing any personal wealth.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Furthermore, since the trades happen atomically, the entrepreneur is only in possession of either their own ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "ENTREPRENEUR’S COIN", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": " or the cryptocurrency funds provided by the IDO participants — but not both. The entrepreneur is never at risk of losing both their own funds and the funds of their audience, which is a strong advantage over today’s ICO model.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Since the coins are immediately available on Komodo DeFi Framework for trading, the entrepreneur’s audience has an immediate trading market. This stands in contrast to today’s ICO model, where users often wait weeks or even months before liquidity for their ICO product arises in a centralized exchange.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Finally, through Komodo's ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "inherent zero-knowledge technology", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": ", participants have the option of privacy when purchasing the IDO product. This enables them to support the crowdsourcing efforts of the entrepreneur within their inherent right to barter in private.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "inherent zero-knowledge technology", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Upon conclusion of the distribution of the IDO coin supply, the entrepreneur has successfully and immediately completed all the crowdsourcing-related steps that could have taken months in today’s typical ICO model.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Komodo’s IDO model provides greater ease-of-use, flexibility, and security.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-many-solutions-of-the-ido-model-security-privacy-decentralization-and-freedom" + }, + { + "text": "Ways an IDO can be Conducted", + "tagName": "h4", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "ways-an-ido-can-be-conducted" + }, + { + "text": "At this point, let us assume that the Entrepreneur has created their coin using one of the following processes: creating a Komodo Smart Chain, cloning/forking ETH or QTUM, cloning/forking any other ", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "ways-an-ido-can-be-conducted" + }, + { + "text": "compatible UTXO-based blockchain", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "ways-an-ido-can-be-conducted" + }, + { + "text": " or minting a new ERC20/QRC20 token. There are several ways an IDO can be conducted using Komodo DeFi Framework, and all the coins/tokens can be distributed in return for any coin/token already available on Komodo DeFi Framework. The entrepreneur can decide the available pairs, prices, and volumes available on each pair.", + "tagName": "p", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "ways-an-ido-can-be-conducted" + }, + { + "text": "compatible UTXO-based blockchain", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "ways-an-ido-can-be-conducted" + }, + { + "text": "The Straightforward Method", + "tagName": "h5", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "The entrepreneur can fork the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "Komodo DeFi Framework Desktop repository", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": " and add their coin/token to the GUI.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "Komodo DeFi Framework Desktop repository", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "This modified software will be used both by the entrepreneur to place sell orders and by the purchasers to buy.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "This method needs the entrepreneur to launch electrum servers for their coin if it is a Komodo Smart Chain or another UTXO type blockchain. The entrepreneur will need server software that supports lite wallets if their coin is an ETH or QTUM fork/clone.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "The entrepreneur must also launch ", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": " on a server to act as a seed node for the trading pairs they are planning to support.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "the-straightforward-method" + }, + { + "text": "A Slightly more Involved Method", + "tagName": "h5", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "The entrepreneur can fork the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "Komodo DeFi Framework Desktop repository", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": " or start from scratch. They create a custom IDO GUI with the specific features needed to conduct an IDO and only add the coins/tokens involved in their IDO.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "Komodo DeFi Framework Desktop repository", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "This method allows the entrepreneur to create an exclusive feel to their IDO and remove distractions. This GUI is developed for the IDO and will only be used for it.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "This method also needs the entrepreneur to launch electrum servers for their coin if it is a Komodo Smart Chain or another UTXO type blockchain. And server software that supports lite wallets if their coin is a ETH or QTUM fork/clone.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "The entrepreneur must also launch ", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": " on a server to act as a seed node for the trading pairs they are planning to support.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "a", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "a-slightly-more-involved-method" + }, + { + "text": "Easy method, be Featured on Komodo DeFi Framework", + "tagName": "h5", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": "The entrepreneur can contact the Komodo team at ", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": "partners@komodoplatform.com", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": " and discuss their requirements.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": "The Komodo team can add a new tab to the subsequent release of Komodo DeFi Framework that features the new coin and has all the features needed to conduct an IDO.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": "The Komodo team can also launch the necessary infrastructure needed to enable a coin to have lite wallets and be enabled in Komodo DeFi Framework.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + }, + { + "text": "The entrepreneur and the purchasers can both use this software and an IDO can be conducted through it.", + "tagName": "li", + "path": "start-here/core-technology-discussions/initial-dex-offering", + "closestElementReference": "easy-method-be-featured-on-komodo-de-fi-framework" + } + ], + "start-here/core-technology-discussions/komodo-defi-framework": [ + { + "text": "Komodo DeFi Framework and Atomic Swaps", + "tagName": "h1", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "introduction" + }, + { + "text": "Komodo DeFi Framework allows people to trade cryptocurrency coins without a counterparty risk. The protocol is open source and trading is available for any coin that any developers choose to connect to Komodo DeFi Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "introduction" + }, + { + "text": "Our service fully realizes decentralized order matching and trade clearing. The order-matching aspect relies on a peer-to-peer network to build public orderbooks, and trade clearing is executed through an atomic cross-chain protocol, also called an \"atomic swap.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "introduction" + }, + { + "text": "Current Problems in Cryptocurrency Exchange", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "current-problems-in-cryptocurrency-exchange" + }, + { + "text": "Centralized Exchanges are Popular, but Limited", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "centralized-exchanges-are-popular-but-limited" + }, + { + "text": "The current, most practical method for cryptocurrency exchange requires the use of centralized exchange services.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "centralized-exchanges-are-popular-but-limited" + }, + { + "text": "These centralized solutions require vouchers to perform the exchange, wherein the user sends their funds into the care of a corporate entity and receives \"I Owe You\" (IOU) statements in return. The user then trades these IOUs within a controlled environment and, when finished, returns their IOUs to the corporate entity for reimbursement.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "centralized-exchanges-are-popular-but-limited" + }, + { + "text": "Centralized exchanges carry great risk. Among many dangers present in this system, users are under the constant risk of their assets being stolen either by an inside theft or an outside hack. Furthermore, the operators of centralized exchanges are under intense legal and social pressure, as the operators are responsible both for the safety of thousands of users' funds and for the users' behaviors on their platforms.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "centralized-exchanges-are-popular-but-limited" + }, + { + "text": "To eliminate such dangers and limitations requires the creation of a decentralized alternative, wherein either the entity holding the funds during the trading process is not centralized, or the users are allowed to trade directly without middleman involvement.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "centralized-exchanges-are-popular-but-limited" + }, + { + "text": "The Concept and Shortcomings of a Normal Decentralized Exchange", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "A decentralized exchange (DEX) allows users to trade funds within an environment that is at least partially decentralized.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "Decentralization of an exchange can take many forms. For example, in 2014 Komodo developers began one of the earliest instances of a decentralized exchange, called \"InstantDEX.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "In this DEX, users sent their blockchain coins not to a centralized entity, but rather to a decentralized \"gateway.\" The gateway was owned and controlled by several cooperating entities who were chosen from the online community. The gateway automatically distributed IOUs (called \"proxy tokens\") to the users, who then traded within the partially decentralized environment.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "When finished, users sent their proxy tokens back to the gateway, and the gateway managers collectively signed for the release of the users' blockchain funds. The underlying technology of this solution is still in use by many blockchain platforms, and is sometimes referred to as a proxy-token protocol.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "This form of a DEX is too limited to compete with centralized exchanges. Among many drawbacks, a proxy-token decentralized exchange must still have a storage center to hold the external cryptocurrencies represented by the proxy tokens. At best, this storage center is only distributed across several authority figures, and therefore users must still surrender control over their assets for the duration of the trading process.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "As of today, no decentralized exchange has successfully replaced any of their centralized counterparts.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-concept-and-shortcomings-of-a-normal-decentralized-exchange" + }, + { + "text": "Komodo DeFi Framework — A Complete Solution", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-a-complete-solution" + }, + { + "text": "We now present a fully functional, new decentralized technology that makes a competitive decentralized exchange possible. We call our technology Komodo DeFi Framework, and it allows people to freely and safely exchange cryptocurrency coins from one person to another.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-a-complete-solution" + }, + { + "text": "The Komodo DeFi Framework includes a decentralized exchange and creates a competitive method for bartering cryptocurrencies, combining the key components of order matching and trade clearing.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-a-complete-solution" + }, + { + "text": "These components are combined into a single integrated system that allows users to make a request to trade their coins, find a suitable trading partner, and complete the trade using an \"atomic swap.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-a-complete-solution" + }, + { + "text": "Unlike previous DEXs, Komodo DeFi Framework does not require users to send funds to either a centralized or decentralized party during the trading process. Rather, users maintain full control over the private keys of their funds at all times.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-a-complete-solution" + }, + { + "text": "The Decentralized Orderbook", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-decentralized-orderbook" + }, + { + "text": "The first component of Komodo DeFi Framework is Order Matching. This is the process of pairing a user’s offer to buy with another user’s offer to sell. The data of these offers form an orderbook.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-decentralized-orderbook" + }, + { + "text": "The process of matching orders is not the actual trade itself, but is only a digitally created promise between users stating that they will perform their parts of the trade.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-decentralized-orderbook" + }, + { + "text": "Komodo DeFi Framework features several technologies to facilitate order matching, including a peer-to-peer network, a decentralized orderbook, and a multicoin passphrase.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-decentralized-orderbook" + }, + { + "text": "Order Matching with Full-Relay and Non-Relay Nodes", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "To create a decentralized orderbook, Komodo DeFi Framework creates a custom peer-to-peer (P2P) network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "In this network, when a node places an order, other nodes on the network collaborate to distribute the data until all nodes are informed. Each node utilizes the data to build the orderbook locally. No centralized server is required.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "To manage this P2P network, Komodo DeFi Framework utilizes two separate types of nodes: a full-relay node and a non-relay node.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "The difference between a full-relay node and a non-relay node is that the former is typically a high-volume trader who provides liquidity to the network in exchange for being a trading hub on the network. This puts the trader in the position of being able to complete trades more quickly than their competitors.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "The latter type of node (non-relay) is the more common user, and these nodes rely on the full-relay nodes. A non-relay node has all the same available trading options. We expect that most nodes joining the network will be non-relay nodes.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "There are no requirements or payments necessary to become either type of node, and so anyone desiring to become a high-volume full-relay node will find no restrictions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "order-matching-with-full-relay-and-non-relay-nodes" + }, + { + "text": "One Passphrase, Many Addresses", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "one-passphrase-many-addresses" + }, + { + "text": "As a part of order matching, Komodo DeFi Framework features a specialty wallet that can manage and trade among a multiplicity of different blockchain coins. In this technology, the user creates a single passphrase and uses this to unlock all public addresses associated with their desired coins.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "one-passphrase-many-addresses" + }, + { + "text": "The complexities of this process are managed by Komodo's Iguana Core technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "one-passphrase-many-addresses" + }, + { + "text": "Atomic Swaps", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "atomic-swaps" + }, + { + "text": "For trade clearing, Komodo DeFi Framework implements our own unique variation of atomic swaps.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "atomic-swaps" + }, + { + "text": "An atomic swap is a technology that allows two users to trade cryptocurrencies across two separate blockchains without requiring an intermediary third party.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "atomic-swaps" + }, + { + "text": "The original concept of an atomic swap was created in 2013 by Tier Nolan and many other Bitcoin enthusiasts on the Bitcointalk.org chat forum. In 2014, this conversation inspired members of the Komodo development team to experiment with atomic swaps, and they have remained a key technology in our strategy ever since.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "atomic-swaps" + }, + { + "text": "The Value of the Atomic Swap", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-value-of-the-atomic-swap" + }, + { + "text": "To understand why the atomic-swap protocol is necessary, one must first recall that computer code is executed in linear fashion. Even if we were to assume that both parties in a trade may be honest, on a computer the process of taking money from each digital wallet and pulling the money into the open must happen one wallet at a time.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-value-of-the-atomic-swap" + }, + { + "text": "Therefore, one person must release control over their money first. The atomic-swap protocol protects that person from vulnerability. Without the atomic swap, any malicious party involved would be able to destroy the fairness of the trade.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-value-of-the-atomic-swap" + }, + { + "text": "A key aspect of a proper atomic swap is that at each stage of the trade-clearing process, each user has incentives to proceed to the next step in the proper manner and disincentives to avoid abandoning the procedure. With this structure in place, regardless of a failure by either user to complete the protocol, each user receives a proper reward.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-value-of-the-atomic-swap" + }, + { + "text": "Komodo DeFi Framework Manages a Public Trading Profile for Maker and Taker", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-manages-a-public-trading-profile-for-maker-and-taker" + }, + { + "text": "In addition to the atomic-swap protocol, Komodo DeFi Framework also allows users to track the behavior of trading partners on the network via a Trust API.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-manages-a-public-trading-profile-for-maker-and-taker" + }, + { + "text": "The Trust API is not based on personal identity, but rather on behavior as associated with public addresses.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-manages-a-public-trading-profile-for-maker-and-taker" + }, + { + "text": "As a user practices good behavior on the network while maintaining a consistent public address, their network trust can increase, thus improving their odds of a willing trading partner.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-manages-a-public-trading-profile-for-maker-and-taker" + }, + { + "text": "Use of the Trust API is optional for all users.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-manages-a-public-trading-profile-for-maker-and-taker" + }, + { + "text": "Introducing Taker and Maker", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "introducing-taker-and-maker" + }, + { + "text": "There are two parties in an atomic swap: the liquidity provider and the liquidity receiver. We call the provider \"Maker\" and the receiver \"Taker.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "introducing-taker-and-maker" + }, + { + "text": "Taker Makes a Request", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "The process of an atomic swap begins with the person who makes the initial request.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "Taker will need two transactions to perform her swap. One transaction will cover the protocol fee, which is roughly 1/777th the size of the desired order. We call this fee the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": ", and its primary purpose is to serve as a disincentive to Taker from spamming the network with rapid requests.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "The ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "dexfee", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": " is actually calculated as \"the greater of either ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "0.0001 TAKER COIN", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": " or ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "1/777th", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": " the size of the desired order\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "The second transaction required of Taker sends the actual amount she intends to swap. Komodo DeFi Framework first verifies that she has these funds, but for the moment she retains these funds in the safety of her own digital wallet.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-makes-a-request" + }, + { + "text": "Maker Answers Taker", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "maker-answers-taker" + }, + { + "text": "On the other side of the atomic swap, we have the liquidity provider — Maker. Maker sees the request on the network for Taker’s atomic swap and decides to accept the trade. Now his part of the process begins.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "maker-answers-taker" + }, + { + "text": "To complete the trade, he must send one transaction. It will be worth 100% of what he and Taker intend to actually trade.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "maker-answers-taker" + }, + { + "text": "Taker and Maker Are Committed", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Assuming Taker and Maker are successfully connected, the process from this point forward becomes quite simple:", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "A summary of the procedure, starting from the beginning.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker requests a swap and sends the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " transaction data to Maker.", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker requests a swap and sends the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " transaction data to Maker.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker receives the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": ", verifies it, and sends ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker generates a \"secret\", creates a hash of the secret, and shares this hash with Taker", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker does not send the payment to Taker directly, but rather into a temporary holding address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Maker's coin network, held safely by encryption, awaiting either for Taker to spend the payment, or for the swap to time out", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Maker via the Komodo DeFi Framework protocol", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker receives the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": ", verifies it, and sends ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker generates a \"secret\", creates a hash of the secret, and shares this hash with Taker", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker generates a \"secret\", creates a hash of the secret, and shares this hash with Taker", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker does not send the payment to Taker directly, but rather into a temporary holding address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker does not send the payment to Taker directly, but rather into a temporary holding address", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "a", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Maker's coin network, held safely by encryption, awaiting either for Taker to spend the payment, or for the swap to time out", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Maker's coin network, held safely by encryption, awaiting either for Taker to spend the payment, or for the swap to time out", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Maker via the Komodo DeFi Framework protocol", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Maker via the Komodo DeFi Framework protocol", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker now sends ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker does not send the payment to Maker directly, but rather into a temporary holding address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Taker's coin network, held safely by encryption, awaiting either for Maker to spend the payment, or for the swap to time out", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Taker via the Komodo DeFi Framework protocol", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker now sends ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker does not send the payment to Maker directly, but rather into a temporary holding address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker does not send the payment to Maker directly, but rather into a temporary holding address", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " blockchains, this holding address is a P2SH hash/time locked output", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "utxo-based", + "tagName": "a", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "On ETH/ERC20 based blockchains, this address is an etomic-swap smart contract", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Taker's coin network, held safely by encryption, awaiting either for Maker to spend the payment, or for the swap to time out", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " enters a state of limbo on the Taker's coin network, held safely by encryption, awaiting either for Maker to spend the payment, or for the swap to time out", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Taker via the Komodo DeFi Framework protocol", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "If the latter occurs, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is automatically refunded to Taker via the Komodo DeFi Framework protocol", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker now spends the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "To spend the payment Maker reveals the secret", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Maker now spends the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "To spend the payment Maker reveals the secret", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker now \"spends\" the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker finds that ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is spent and extracts the secret from the spending transaction. The secret can be used to unlock the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " and send the coins to Taker's address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker now \"spends\" the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Taker finds that ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " is spent and extracts the secret from the spending transaction. The secret can be used to unlock the ", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": " and send the coins to Taker's address", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "While it may seem inefficient to have five transactions for a swap that could be done with two, the complexity of this process provides us with the requisite \"trustless-ness\" to maintain user safety.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "taker-and-maker-are-committed" + }, + { + "text": "Incentives and Disincentives to Maintain Good Behavior", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "As we will now explain, at every step along the way there are incentives for each side to proceed, and there are various financial protections in place should one side fail.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "Also, because payments are sent to these \"temporary holding addresses\" that exist within the Komodo DeFi Framework protocol, the protocol itself can assist in the process of moving money at the appropriate steps.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "Let us now examine what is happening after each step.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "incentives-and-disincentives-to-maintain-good-behavior" + }, + { + "text": "1 - Taker Sends ", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "If Maker accepts the offer to trade, but does not send ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": ", Taker only stands to lose the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": ". This is only 1/777th of the entire transaction amount, so she loses very little.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "Maker, on the other hand, stands to lose more. Since Maker did not follow through with his end of the bargain, the Komodo DeFi Framework network indicates on his public Komodo DeFi Framework trading profile that he failed in a commitment, thus decreasing his profile’s reputation. If Maker continues this behavior as a habit, he may find it difficult to discover trading partners.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "So long as the frequency of Makers failing is low, the occasional extra ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": " paid by a Taker is a minor issue. However, if there is a sudden spike in misbehavior, the Komodo DeFi Framework code has built-in contingency plans which can provide refunds to Takers.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dexfee" + }, + { + "text": "2 - Maker Successfully Sends ", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "If Taker does not follow with her next step, the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": ", then Taker loses not only the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": ", but she also receives a mark on her public Komodo DeFi Framework profile. She gains nothing, and Maker has no reason to fear as ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": " will automatically return to him via the Komodo DeFi Framework protocol.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment" + }, + { + "text": "3 - Taker Successfully Sends ", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment" + }, + { + "text": "", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment" + }, + { + "text": "If Maker does not proceed with his next step (spending the payment), then after lock time expires Taker can simply activate an Komodo DeFi Framework protocol that will refund the payment.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment" + }, + { + "text": "4 - Maker Spends ", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "If Taker does not follow by also \"spending\" the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": ", it is of no concern to Maker because he has already received his funds. If Taker is simply sleeping and forgets to spend the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": ", she can only hurt herself.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "Naturally, for Taker this is slightly dangerous. Taker’s best course of action is to remain alert and spend the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": " once the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": " is spent and the secret is revealed.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "takerpayment-2" + }, + { + "text": "5 - Taker Spends ", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "", + "tagName": "h4", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "The process is complete. Taker received the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": ". Maker received the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": ". The entire process only cost Taker the original ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "At each step along the way, the side that needs to take the next step is motivated to do so, with greater and greater urgency until the process is complete.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "makerpayment-2" + }, + { + "text": "Additional Details", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "additional-details" + }, + { + "text": "Always Manage Risk Appropriately", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "always-manage-risk-appropriately" + }, + { + "text": "Naturally, users must understand that outside forces can disable the process and thereby damage one of the users. For instance, an Internet outage for Taker could be particularly dangerous. Therefore, users are advised only to trade manageable sums that they are willing to put at risk, and only with nodes that have reliable reputations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "always-manage-risk-appropriately" + }, + { + "text": "The Connection is the True Challenge of an Atomic Swap", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-connection-is-the-true-challenge-of-an-atomic-swap" + }, + { + "text": "Performing a successful connection between Maker and Taker, and verifying their funds, is the most complex and difficult aspect of creating the Komodo DeFi Framework network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-connection-is-the-true-challenge-of-an-atomic-swap" + }, + { + "text": "Myriad factors are involved in a successful attempt for Maker and Taker to connect: human motivation; the experience level of the users; economics; connection technology; user hardware setups; normal variations within Internet connections; etc.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-connection-is-the-true-challenge-of-an-atomic-swap" + }, + { + "text": "We emphasize to users here that the process of performing these actions over a peer-to-peer network has almost an artistic element to it. An attempt to successfully connect Maker and Taker can be thought of more like fishing, where we must simply cast and recast our line until we successfully connect with our target.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-connection-is-the-true-challenge-of-an-atomic-swap" + }, + { + "text": "If a user attempts a trade and no response returns from the network, the user should slightly adjust the parameters of their offer and try again. As Komodo DeFi Framework continues to iterate and improve, and as the number of users increases, we expect any required effort to lessen for users, the network, and the Komodo DeFi Framework GUI apps.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-connection-is-the-true-challenge-of-an-atomic-swap" + }, + { + "text": "The DEX Fee", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "People will notice that there is a small ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " required as part of the Komodo DeFi Framework protocol. This is 1/777 of the transaction amount and it is calibrated to make spam attacks impractical. The 1/777 fee is about equal to 0.1287% of the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "By forcing a would-be attacker to spend real money, attacking the network becomes costly. Without this spam prevention, Komodo DeFi Framework could otherwise be attacked at the protocol level by any person performing a plethora of trade requests.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "Naturally, some atomic swaps can initiate and then fail to complete, which raises questions about what happens to the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " in this scenario. The ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " is the first charge in the protocol; in this sense, there is a ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " charged for these failed atomic swaps.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "However, this failure should not be looked upon in isolation. The Komodo DeFi Framework protocol is based on statistics. Statistically speaking, there will be some percentage of atomic swaps that start and will not complete.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "Let us suppose a 15% failure rate at this stage of the atomic swap (15% is three times higher than the rate of failure we currently observe in our testing). Even in this scenario, the effective ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " cost is still only 0.15% to all Taker-side requests across the entire network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "If you experience the loss of a ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " transaction for an atomic swap that fails to complete, know that this is all part of the statistical process. If you find yourself paying more than 0.15% of your completed trades in fees, please let us know.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "As an organization, when speaking generally to our audience online, we state that the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": " is just 0.15%. In this manner, we hope to create the expectation that 0.15% is normal; if the network performs perfectly, on the other hand, users will get a blessing in the form of a lower fee, 0.1287%.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-dex-fee" + }, + { + "text": "Dealing with Confirmations", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Since Komodo DeFi Framework is trading permanently on blockchains — as opposed to updating an internal database of vouchers — both sides of the trading pair need to wait and watch as miners on the respective blockchains calculate transaction confirmations.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Because the payments that occur on one blockchain will proceed regardless of the actions on the other blockchain — a confirmation failure on one chain will not stop with the other blockchain performing its duties as normal — the Komodo DeFi Framework protocol must automatically observe and adjust as necessary.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "dealing-with-confirmations" + }, + { + "text": "Komodo DeFi Framework is Entirely Experimental, and Should Be Treated As Such", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-is-entirely-experimental-and-should-be-treated-as-such" + }, + { + "text": "We warn our readers, nevertheless. Every element of the Komodo ecosystem is still considered to be highly experimental. We provide no investment advice, nor any guarantees of any funds utilized on our network. Use our products only at your own risk.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "komodo-de-fi-framework-is-entirely-experimental-and-should-be-treated-as-such" + }, + { + "text": "The Komodo DeFi Framework API", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-komodo-de-fi-framework-api" + }, + { + "text": "We created an API model that is generally the same for all coins.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-komodo-de-fi-framework-api" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-komodo-de-fi-framework-api" + }, + { + "text": "please turn to the Komodo DeFi Framework documentation.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-komodo-de-fi-framework-api" + }, + { + "text": "please turn to the Komodo DeFi Framework documentation.", + "tagName": "a", + "path": "start-here/core-technology-discussions/komodo-defi-framework", + "closestElementReference": "the-komodo-de-fi-framework-api" + } + ], + "start-here/core-technology-discussions/komodo-sdk": [ + { + "text": "Komodo SDK", + "tagName": "h1", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Komodo SDK is an all-in-one solution for building, deploying, and managing blockchain and DeFi (d)applications. It includes the Komodo DeFi Framework, Komodo Core Protocol and the Komodo GUI/DAPP Suite, which make up a complete set of tools, APIs, and libraries to help you create your own blockchain-based products.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-sdk" + }, + { + "text": "All these tools empower developers, businesses, and end-users alike. Each component within the Komodo SDK serves a distinct purpose and contributes to an integrated experience, streamlining the process of building, deploying, and managing blockchain and DeFi applications. In this doc, we will explore the key components that make up the “new” Komodo SDK and discuss their features, functions, and key purpose.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Komodo SDK Components", + "tagName": "h2", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-sdk-components" + }, + { + "text": "Komodo DeFi Framework", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "It is the ultimate solution for blockchain and DeFi developers. Includes a Wallet API and DEX API bundled together. Handles order-matching, p2p communication network for nodes etc.,", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Build a non-custodial wallet", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Launch a cross-chain/protocol decentralized exchange", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Create custom apps such as an initial DEX offering (IDO) portal", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-de-fi-framework" + }, + { + "text": "Komodo Wallet, GUI or Dapp Suite", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "It is the flagship 3-in-1 decentralized application.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "Non-custodial wallet", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "Cross-chain/protocol DEX", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "Crypto Bridge", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "Available in web browser, mobile, and desktop", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-wallet-gui-or-dapp-suite" + }, + { + "text": "Komodo Core Protocol", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-core-protocol" + }, + { + "text": "Blockchain network with a scalable multi-chain architecture. Enables anyone to launch an independent blockchain with its own coin - no gas fees and no secondary cryptocurrency needed.", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "komodo-core-protocol" + }, + { + "text": "KMD", + "tagName": "h3", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "kmd" + }, + { + "text": "Native coin of the Komodo Crypto Ecosystem", + "tagName": "p", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "kmd" + }, + { + "text": "Transactions fees on the KMD blockchain are currently fractions of a cent", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "kmd" + }, + { + "text": "Taker orders on DEX trades within Komodo Wallet (and any Komodo DeFi Framework Powered DEX) receive a 10% dex-fee reduction on all KMD trading pairs", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "kmd" + }, + { + "text": "(On roadmap) KMD burn mechanism for each trade within Komodo Wallet (and any Komodo DeFi Framework Powered DEX)", + "tagName": "li", + "path": "start-here/core-technology-discussions/komodo-sdk", + "closestElementReference": "kmd" + } + ], + "start-here/core-technology-discussions/miscellaneous": [ + { + "text": "Miscellaneous", + "tagName": "h1", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "miscellaneous" + }, + { + "text": "Details Regarding KMD Main Chain", + "tagName": "h2", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "details-regarding-kmd-main-chain" + }, + { + "text": "| Era of Block Rewards | Block Height | Block Reward | Coin Supply |\n| ---------------------- | ------------ | ------------ | ----------- |\n| Current Block Rewards | ~1150000 | 3 KMD | ~115000000 |\n| First Reward Reduction | 7777777 | 2 KMD | ~200000000 |\n| Final Reward Reduction | 15555553 | 1 KMD | ~215000000 |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "details-regarding-kmd-main-chain" + }, + { + "text": "The foundational coin of the Komodo ecosystem is named after the ecosystem itself, Komodo (KMD).", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "details-regarding-kmd-main-chain" + }, + { + "text": "Rewards", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "Those who hold KMD may earn rewards of up to 5.1% annually. Any wallet address that holds at least 10 KMD is eligible. KMD holders must simply move their KMD once a month—even if the funds are sent back to the same address from which they originated—in order to earn their reward. This reward is built into the core code of Komodo.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "The reward comes from an opportunity provided by our unique security system, dPoW. The nature of the reward is rooted in the financial incentive that is typically given to miners on a normal PoW chain. On a normal PoW chain, when a miner mines a new block, the blockchain mints new coins and delivers them to the miner’s indicated wallet. For instance, on the Bitcoin blockchain, the reward for mining a new block is currently ~12.5 BTC. In dPoW, we do not need to allocate such a high incentive to miners, as we already maintain access to the hash rate of our chosen PoW network, Bitcoin. Therefore, when we created the KMD main chain, we recoded this coin-minting reward to distribute 5.1% annual rewards to all holders of at least 10 KMD.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "To earn rewards in the full amount of 5.1%, users must move their funds on the blockchain at least once per month. The reward is calculated as a part of the utxo transfer process. The KMD code only calculates rewards for utxos up to one month, and then stops. By simply sending the full balance of a wallet to the same receiving address, a user can generate a new utxo. In this manner, the user can claim their current rewards, and continue receiving them for at least one month.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "The KMD 5.1% reward will continue for a period of approximately twelve to fourteen years. Specifically, the reward will cease when the KMD chain reaches a block height of 7777777.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "Note that no one is forced into using KMD in our ecosystem. We are often asked why we chose this route, as the free nature of the Komodo ecosystem can be in direct contrast to the philosophies of many other ecosystems and exchanges. Other ecosystems often require users to use the developer’s coin.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "The reason why we follow a more open practice is that we strive to adhere to the guiding principles of decentralization and open-source technology. We want to create a blockchain platform where people are free to use whatever is most useful for them in their entrepreneurial endeavors. Keeping KMD as an optional element empowers the members of the Komodo ecosystem with freedom.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "rewards" + }, + { + "text": "The Nature of Privacy Features in the Komodo Ecosystem", + "tagName": "h2", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-nature-of-privacy-features-in-the-komodo-ecosystem" + }, + { + "text": "The Option of Privacy is Essential", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-option-of-privacy-is-essential" + }, + { + "text": "One primary goal of the Komodo ecosystem is to provide our users with the highest levels of security. The option to enable oneself with privacy is an inherent part of a strong security system. Privacy empowers users with the ability to make choices without being directly controlled or observed by a third-party actor.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-option-of-privacy-is-essential" + }, + { + "text": "Many of humanity’s most meaningful advancements in art, technology, and other human endeavors began in situations where the creator had the security of privacy in which to explore, to discover, to make mistakes, and to learn thereby.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-option-of-privacy-is-essential" + }, + { + "text": "Privacy Issues in Popular Privacy-Centric Blockchains", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "Across the entire cryptocurrency industry, current pathways to obtain privacy in the blockchain industry have many problems.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "One of the most popular methods to obtain privacy is the use of a centralized mixing service. In this process, users send their cryptocurrencies to service providers, who then mix all the participants’ coins together, and return the coins according to the relevant contributions. With this method, the most dangerous issue, among many, is that for the duration of the mixing period users lose control over their currency. The funds, therefore, are subject to theft and human error.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "Other decentralized coin-mixing methods, such as the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "coin shuffle,", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": " require coordinating with other human parties. This also introduces the potential for the same issues of theft and human error, and adds yet another risk: the coordination between human parties can result in the disclosure of a user’s privacy.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "coin shuffle,", + "tagName": "a", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "Some cryptocurrencies support mixing as a part of the normal transaction process out of a desire to provide constant anonymization. Varying methods for randomizing these transaction-mixing patterns exist among the many different brands of relevant cryptocurrencies, and each feature strengths and weaknesses in their approach.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "privacy-issues-in-popular-privacy-centric-blockchains" + }, + { + "text": "Komodo's Approach to Privacy Technologies", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "komodos-approach-to-privacy-technologies" + }, + { + "text": "The roots of the Komodo ecosystem stem from the seminal work of Satoshi Nakamoto and his Bitcoin protocol. One of the key challenges in this technology is that the original protocol does not make any account for privacy. Therefore, Komodo began not as a fork of the vanilla Bitcoin protocol, but rather as a fork of Zcash. The latter is a privacy-centric fork of Bitcoin, and therefore Komodo inherits technology from both Bitcoin and Zcash by this action.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "komodos-approach-to-privacy-technologies" + }, + { + "text": "The Komodo Smart Chain software, komodod, retains the inherent privacy features of Zcash. These primarily consist of the ability to convert money from a transparent address to a private address, and then to transfer money from one private address to another. When sending money that is already private to an address that is also private, Zcash technology allows the funds to move without leaving a public data trail for later analysis.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "komodos-approach-to-privacy-technologies" + }, + { + "text": "This is one of the most powerful forms of blockchain privacy in existence, as the provided privacy is effectively permanent.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "komodos-approach-to-privacy-technologies" + }, + { + "text": "Private and Non-Private Addresses", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-and-non-private-addresses" + }, + { + "text": "On any privacy-enabled Smart Chain, there are two types of addresses. One is transparent, the other is private.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-and-non-private-addresses" + }, + { + "text": "Transparent Addresses", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-addresses" + }, + { + "text": "We call a transparent address a \"T address.\" These are fully accessible to the user, and they are the means of conducting normal transactions. All currency entering and leaving a T address is fully visible to the network.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-addresses" + }, + { + "text": "The user must use these addresses for most interactions on-chain, including most, if not all, of the Antara Module transactions, and when using Komodo DeFi Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-addresses" + }, + { + "text": "Private Addresses", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "We call a privacy-enabled address a \"Z address,\" as they utilize the Zcash parameters and zk-SNARK technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "Z addresses often have RPCs that are separate from the RPCs used for T addresses. For example, ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "z_gettotalbalance", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": " is separate from ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "getbalance.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "z_gettotalbalance", + "tagName": "a", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "getbalance.", + "tagName": "a", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "The cost of interacting with Z addresses is often higher than the cost of interacting with a T address. This is due to the fact that Z transactions require more block space, due to their demands for increased levels of encryption.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-addresses" + }, + { + "text": "Method of Moving Funds Privately", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": "There are three types of transactions that can take place in respect to privacy technology.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": "All of the following transactions are accomplished using the ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": "z_sendmany", + "tagName": "a", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "method-of-moving-funds-privately" + }, + { + "text": "Transparent to Private", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-to-private" + }, + { + "text": "A user sends funds from a T address to a Z address.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-to-private" + }, + { + "text": "This is ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-to-private" + }, + { + "text": "not", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-to-private" + }, + { + "text": " a private transaction. An observer of the blockchain can observe both the T address from which the funds are consumed and the Z address to which the funds are sent.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "transparent-to-private" + }, + { + "text": "Private to Private", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "This ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "is", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": " a private transaction. Using zk-SNARK technology inherited from Zcash, this transaction moves funds from one address to another ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "without leaving any data available in the public domain for later observation.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "The user may also consider enhancing their privacy through services such as ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "Tor", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "Tor", + "tagName": "a", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "All privacy from zk-SNARK technology is derived solely as a part of this type of transaction.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-private" + }, + { + "text": "Private to Transparent", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-transparent" + }, + { + "text": "This is ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-transparent" + }, + { + "text": "not", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-transparent" + }, + { + "text": " a private transaction. Rather, this is the transaction wherein funds again become public, and therefore usable for services such as a typical Antara Module or an Komodo DeFi Framework exchange.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-transparent" + }, + { + "text": "Observers on the blockchain can observe both the Z address from which the funds are consumed and the T address to which the funds are sent.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "private-to-transparent" + }, + { + "text": "Additional Privacy Considerations", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "additional-privacy-considerations" + }, + { + "text": "Although the anonymization process provides a measure of privacy and may appear to be sufficient, there are still more precautions a user must take. Two main attacks are available to a would-be sleuth.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "additional-privacy-considerations" + }, + { + "text": "The Timing Attack", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-timing-attack" + }, + { + "text": "In this attack, the sleuth simply studies the time the funds disappear from a T address and looks for funds to appear in another T address soon thereafter. If the privacy-user persistently chooses predictable timing for initiating and completing their transfer of funds, a determined sleuth may deduce the user's trail of funds.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-timing-attack" + }, + { + "text": "For effective privacy, the user should wait for other users on the Smart Chain to exercise privacy transactions, and thereby conceal their own privacy behavior. The more users using privacy features, the more private the transactions become.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-timing-attack" + }, + { + "text": "The Knapsack Attack", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "The Knapsack Attack is similar to the Timing Attack, but as applied to amounts. For example, if there is only one KMD address that sends 1000000 KMD from a T address to a Z address, and later 1000000 KMD emerges from a Z address to a T address, the sleuth can easily discern the user’s trail of funds.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "To protect against the Knapsack Attack, users can vary their amount of funds in both ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "T -> Z", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": " and ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "Z -> T", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": " transactions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-knapsack-attack" + }, + { + "text": "A Word on Risks Inherent in zk-SNARK Technology", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "Zero-knowledge transactions rely on the Zcash parameters as put forth by the Zcash team. The Zcash parameters are a \"zero-knowledge\" form of technology. This is a powerful form of privacy, and arguably superior to other forms as it is effectively permanent. Relying on the Zcash parameters allows us to turn our creative resources to other blockchain-technology challenges, while still empowering members of the Komodo ecosystem with the option of privacy.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "To create the Zcash parameters, the original Zcash developers had to create a series of keys that, when combined, created a master key that could unlock and lock the parameters. After using the master key to create the parameters, the team destroyed every individual key. The team conducted this endeavor in a public manner. We encourage interested readers to view the \"Zcash Ceremony\" explanation, and to search for other viewpoints as well.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "To briefly summarize the security measures, the Zcash team used several layers of protection including: multi-party computation, air-gapped compute nodes, hard-copy evidence trails, a uniquely crafted distribution of the Linux operating system, and the physical destruction of each piece of hardware that held an individual key. The resulting layers of defense would be of the highest level of difficulty for an outsider to penetrate. Furthermore, the method of creation and destruction ensured that the internal security of the project was faultless, so long as at least one member of the entire Zcash team was honest.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "By our observation, the team performed this endeavor with sufficient competence and due diligence. Furthermore, given the nature of the project, the longstanding reputation of the Zcash developers, and the modus operandi of their lives’ work, we believe they were properly motivated to perform the creation and destruction in a capable and honest manner.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "Nevertheless, there are privacy advocates in the cryptocurrency industry who maintain a degree of suspicion over any project that requires an element of human trust. This suspicion extends to the Zcash parameters. These observers continually scrutinize the Zcash project, searching for more and more processes by which the creation ceremony could have failed. Yet, while various theories have been put forth, no actual failure in the Zcash parameters has been discovered.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "In adopting the Zcash parameters, we receive frequent questions regarding how they affect Komodo-based currency. The answer is that the privacy in the Komodo ecosystem is permanent, regardless of any potential fault by the Zcash team. Furthermore, we can adopt any updates the Zcash team releases to the parameters.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "In the unlikely event that someone was able to retain a complete copy of the master key, the only power the holder would have, would be the ability to create new private money in the currency of any Smart Chains utilizing zero-knowledge transactions.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "This holder could then shift that value into transparent, spendable money. This could negatively impact any affected Smart Chain's local community, and we would be required to adapt our platform. If a fault in the Zcash parameters were to be discovered, the Komodo team has various contingency methods at our disposal to remove the Zcash parameters and replace them with a new set of parameters.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "Though in Komodo we do not see this as a realistic threat, we nevertheless include the information here in our documentation to provide complete transparency for any user who seeks to invest their resources in a privacy-enabled Komodo Smart Chain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-word-on-risks-inherent-in-zk-snark-technology" + }, + { + "text": "The Utxo: An Elusive, Yet Fundamental Concept", + "tagName": "h2", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "All Bitcoin-based software relies heavily on a technology called the \"utxo,\" short for Unspent Transaction. This technology was invented in the original Bitcoin protocol. Yet despite the technology's age, even the most active of cryptocurrency users rarely know what utxos are or why they exist.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "To better understand utxos, let us first examine the language of a common user when describing how much cryptocurrency money they have and how they perceive those funds. We will therefore need to understand the concept of \"satoshis,\" the way a blockchain handles the collection and distribution of funds, and how we utilize these core technologies when trading on Komodo DeFi Framework.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "the-utxo-an-elusive-yet-fundamental-concept" + }, + { + "text": "Comparing the Utxo to Fiat Money", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Let us assume a cryptocurrency user, whom we name Charlie, has $10,000 in his physical wallet. Naturally, when Charlie thinks about the amount of physical (or \"fiat\") money he has, he says to himself, \"I have $10,000.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "However, there is no such thing as a $10,000-dollar bill. Instead, Charlie actually has a collection of smaller bills stacked together. For instance, he could have a stack of $100-dollar bills, the total of which equals $10,000 dollars.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "If Charlie goes to purchase an item that costs $1, and he only has $100-dollar bills in his wallet, to make his purchase he will take out a single $100-dollar bill and give it to the cashier. The cashier then breaks that $100-dollar bill down into a series of smaller bills. The cost for the item, $1, remains with the cashier, and the cashier then provides change—perhaps in the form of one $50-dollar bill, two $20-dollar bills, one $5-dollar bill, and four $1-dollar bills.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Charlie now thinks to himself, \"I have $9,999.\" Specifically, however, he has ninety-nine $100-dollar bills, a $50-dollar bill, two $20-dollar bills, one $5-dollar bill, and four $1-dollar bills.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "We emphasize that not only does he not have ten thousand $1-dollar bills, he also does not have one million pennies ($0.01). Furthermore, because pennies are the smallest divisible unit of value in Charlie’s wallet, we could point out that each bill is a collection of its respective units of pennies. For instance, a $1-dollar bill in Charlie’s wallet we could describe as, \"a bill that represents a collection of one hundred pennies and their value.\"", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "comparing-the-utxo-to-fiat-money" + }, + { + "text": "Understanding Cryptocurrencies and Their Utxos", + "tagName": "h3", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "understanding-cryptocurrencies-and-their-utxos" + }, + { + "text": "A Satoshi is The Smallest Divisible Unit of a Cryptocurrency", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "Continuing with our explanation of utxos, we next need to understand the concept of \"satoshis.\" The name \"satoshi\" is derived in honor of Satoshi Nakamoto, author of the original Bitcoin whitepaper. By convention in the cryptocurrency community, one satoshi is equal to one unit of a coin at the smallest divisible level. For instance, 1 satoshi of Bitcoin is equal to 0.00000001 BTC.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "Let us suppose now that Charlie has 9.99000999 BTC (Bitcoin) in his digital wallet. Assuming Charlie correctly understands the concept of satoshis, Charlie could say to himself, \"I have nine hundred and ninety-nine million, nine hundred and ninety-nine satoshis of bitcoin.\" This is how Charlie might mentally perceive the collection of money that exists in his digital wallet, like he perceives the $9,999 in his fiat wallet.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-satoshi-is-the-smallest-divisible-unit-of-a-cryptocurrency" + }, + { + "text": "A Utxo is a Packet of Satoshis, just as a Fiat Dollar Bill is a Packet of Pennies", + "tagName": "h4", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Recall now that with fiat money, Charlie did not think about how his original $10,000 was comprised of smaller individual $100-dollar bills. Similarly, Charlie also does not think about how his 9.99000999 BTC could be comprised of smaller collections of satoshis.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Furthermore, just as Charlie did not carry around fiat money as a collection of pennies, he also is not carrying around a raft of satoshis. Were he to try to carry a million pennies in his physical wallet, the weight of the wallet would be unmanageable. Similarly, if the Bitcoin protocol were to attempt to manage nine hundred and ninety-nine million, nine-hundred and ninety-nine satoshis, the \"data weight\" would be so heavy, the Bitcoin protocol would be enormous and unmanageable.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To optimize \"data weight,\" the Bitcoin protocol therefore bundles up the satoshis into something that is like the example of dollar bills earlier, but with one important difference. In fact, here is where the Bitcoin protocol exercises a superiority over fiat money by deviating from the limitations fiat money must obey when bundling smaller values into larger values.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "In fiat money, one hundred pennies are bundled into a one-dollar bill, which can then be bundled into a larger bill, and so on. All the sizes of fiat money are preset and predetermined by the issuer of the fiat money when they print their bills and coins.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The Bitcoin protocol, however, does not need to pre-plan the sizes of \"bills\" (i.e. the collections of satoshis) in the owner’s wallet. Bitcoin is freer in this sense; it can shift and change the sizes of its \"bills\" at will because there is no need to accommodate for the printing of physical coins and paper.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Instead, the Bitcoin protocol allows for the developer of digital wallets to write code that can optimize how bitcoin satoshis are packaged into \"bills,\" and thus the community of developers can work together to keep the data weight of the blockchain manageable. The better the digital-wallet developer, the more efficient the size of the \"bills\" (a.k.a. the packets of satoshis).", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The Bitcoin protocol does have one limitation, however: It must keep track of how these satoshis are being collected into larger \"bills\" in everyone’s digital wallets. After all, a key idea of Bitcoin is that everything happens under the public eye, where it can be verified.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Because the Bitcoin blockchain must keep track of the sizes of these packets of satoshis, the only time the packets can be assembled or disassembled into larger and smaller sizes is at the moment when the user is spending money on the public blockchain. It is at this time that the user is under the public eye, and therefore his actions can be verified.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To compare this limitation to fiat money, consider the effect created were Charlie to cut a $100-dollar bill into smaller pieces. The $100-dollar bill would no longer be respected as a valid form of currency.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "As the word \"utxo\" is not a sonorous word, some users in the Komodo ecosystem simply refer to utxos as \"bills.\" The concept is effectively the same. However, as the rest of the blockchain industry primarily uses the word \"utxo,\" we frequently must use this word to maintain a common line of communication. The word utxo will be used throughout the rest of this documentation, to keep in line with industry practices.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The utxo packet can be any size, and the developer of the GUI software decides on this process. Most importantly, and to reiterate, a utxo can only be resized during the process of spending, as this is the moment when the user interacts with the public blockchain.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "To further clarify this, let us return to Charlie’s example with fiat money. Recall that when Charlie went to purchase a $1-dollar item, he only had $100-dollar bills in his wallet. He had to give out one $100-dollar bill, and then receive a broken-down collection of dollar bills in return.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This is exactly how it works with utxos. Charlie has a collection of utxos in his digital wallet. When he goes to buy something, he will give out utxos until he surpasses how much he owes, and then the extra change from the last utxo will be broken down and returned to him.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "For example, let us suppose that Charlie’s 9.99000999 BTC is comprised of three utxos worth the following values:", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Utxos in Charlie’s Wallet | Value |\n| ------------------------- | -------------- |\n| Utxo #1: | 0.50000000 BTC |\n| Utxo #2: | 0.49000999 BTC |\n| Utxo #3: | 9.00000000 BTC |\n| Total | 9.99000999 BTC |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Charlie now desires to purchase an item that costs 0.60000000 BTC. He will have to hand out enough utxos from his wallet until he covers the costs of this transaction, just as he would if he were using fiat money. The Bitcoin protocol calculates the change from the transaction and then returns his change to him.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Remember that there is a fee when spending money on a blockchain. Since we are using Bitcoin in this example, the fee would be paid to cryptocurrency miners. Let us imagine that the fee the miners charge Charlie is 999 satoshis.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "We begin by looking at how Charlie would see the process of making the purchase, assuming he does not understand the concept of utxos. For now, Charlie only understands how much is in his wallet at the satoshi level as he conducts his transaction.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| ------------------ | ----------------------------------------------------------------- |\n| 9.99000999 BTC | The amount Charlie initially owns |\n| (-) 0.60000000 BTC | The amount Charlie sends to the digital cashier for his purchase |\n| (-) 0.00000999 BTC | The network fee paid to miners |\n| ------------------ | ----------------------------------------------------------------- |\n| 9.39000000 BTC | The amount left in his wallet |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This deduction for his purchase all appears very simple to Charlie—a testament to\nthe Bitcoin protocol’s effective design.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "In the background, however, the digital wallet handles the utxos and the change process in a manner as determined by the programmer. In Charlie’s example, let us assume that it proceeds this way:", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| ------------------------ | ------------------------------------------------------------------------ |\n| 0.60000999 BTC | The total amount that Charlie owes to the cashier and network |\n| (-) 0.50000000 BTC | The wallet sends the full value of ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "utxo #1", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " to the digital cashier |\n| ------------------------ | ------------------------------------------------------------------------ |\n| 0.10000999 BTC | This is the remaining total amount that Charlie still owes |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "The wallet now brings out utxo #2, which is worth 0.49000999 BTC:", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "This utxo is broken down or shattered into smaller pieces.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Value | Description |\n| -------------------- | ---------------------------------------------------------------------- |\n| 0.49000999 BTC | The size of Charlie’s ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "utxo #2", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": ", now in the process of change |\n| (-) 0.10000000 BTC | This shatter of ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "utxo #2", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " goes to the cashier (payment fulfilled) |\n| (-) 0.00000999 BTC | This shatter of ", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "utxo #2", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": " pays the network fee to the miners |\n| -------------------- | ---------------------------------------------------------------------- |\n| 0.39000000 BTC | This last shatter now returns to Charlie’s wallet as a new utxo |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Charlie now has one new utxo in his wallet, and it is worth 0.39000000 BTC:", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Charlie’s New Wallet State | Value |\n| ---------------------------- | ---------------- |\n| Utxo #3: | 9.00000000 BTC |\n| Utxo #4: | 0.39000000 BTC |\n| ---------------------------- | ---------------- |\n| Total | 9.39000000 BTC |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "If Charlie wants to buy something later, these utxos will have to be broken up once more, according to the costs and programming of the digital wallet. Again, whatever is left over from his last utxo comes back to his own wallet as a new utxo.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Now let us suppose that Charlie receives 0.4 BTC from someone else. In Charlie’s wallet, he will see a total of 9.79 BTC. However, in his wallet there are now actually three utxos:", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "| Charlie’s New Wallet State | Value |\n| -------------------------- | -------------- |\n| Utxo #3: | 9.00000000 BTC |\n| Utxo #4: | 0.39000000 BTC |\n| Utxo #5: | 0.4000000 BTC |\n| Total | 9.79000000 BTC |", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "As a result, the number and sizes of utxos in Charlie’s wallet will vary over time. He may have many smaller utxos that make up his full balance, or sometimes he might just have one large utxo that comprises all of it. For Charlie, it is normally possible to ignore this since the wallet developer could handle everything automatically.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "However, a developer in the Komodo ecosystem will likely encounter the concept of utxos in the course of software development, and therefore we encourage developers to practice their understanding.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "a-utxo-is-a-packet-of-satoshis-just-as-a-fiat-dollar-bill-is-a-packet-of-pennies" + }, + { + "text": "Conclusion", + "tagName": "h2", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "conclusion" + }, + { + "text": "This concludes a thorough explanation of the foundational technologies of the Komodo ecosystem. We are working diligently to improve the user experience. While some may say that the cryptocurrency industry is but a bubble, at Komodo we believe we have not yet begun the fight. We hope that the innovations we provide will be a meaningful contribution to the remarkable advent of blockchain, decentralization, and open-source technologies.", + "tagName": "p", + "path": "start-here/core-technology-discussions/miscellaneous", + "closestElementReference": "conclusion" + } + ], + "start-here/core-technology-discussions/references": [ + { + "text": "Acknowledgements and References", + "tagName": "h1", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "BarterDEX – A Practical Native DEX ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://github.com/SuperNETorg/komodo/wiki/barterDEX-Whitepaper-v2", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://github.com/SuperNETorg/komodo/wiki/barterDEX-Whitepaper-v2", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Nakamoto Satoshi (2008): Bitcoin: A peer-to-peer electronic cash system. ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitcoin.org/en/", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitcoin.org/en/", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Mtchl (2014): The math of Nxt forging ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.docdroid.net/ahms/forging0-4-1-pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.docdroid.net/ahms/forging0-4-1-pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "King Sunny, Nadal Scott (2012): PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.peercoin.net/read/papers/peercoin-paper.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.peercoin.net/read/papers/peercoin-paper.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Delegated Proof-of-Stake Consensus ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://komodoplatform.com/en/academy/delegated-proof-of-stake/", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://komodoplatform.com/en/academy/delegated-proof-of-stake/", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Miers Ian, Garman Christina, Green Matthew, Rubin Aviel: Zerocoin: Anonymous Distributed E-Cash from Bitcoin ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://isi.jhu.edu/~mgreen/ZerocoinOakland.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Ben-Sasson Eli, Chiesa Alessandro, Garman Christina, Green Matthew, Miers Ian, Troer Eran, Virza Madars (2014): Zerocash: Decentralized Anonymous Payments from Bitcoin ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Ben-Sasson Eli, Chiesa Alessandro, Green Matthew, Tromer Eran, Virza Madars (2015): Secure Sampling of Public Parameters for Succinct Zero Knowledge Proofs ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.ieee-security.org/TC/SP2015/papers-archived/6949a287.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://www.ieee-security.org/TC/SP2015/papers-archived/6949a287.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "NXT Community: NXT White paper (Previously available at ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "http://wiki.nxtcrypto.org/wiki/Whitepaper:Nxt", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": ")", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Larimer Daniel, Scott Ned, Zavgorodnev Valentine, Johnson Benjamin, Calfee James, Vandeberg", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "Michael (March 2016): Steem, An incentivized, blockchain-based social media platform.( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://steem.com/SteemWhitePaper.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://steem.com/SteemWhitePaper.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "BitFury Group (Sep 13, 2015): Proof of Stake versus Proof of Work White Paper ( ", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": " )", + "tagName": "li", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + }, + { + "text": "https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf", + "tagName": "a", + "path": "start-here/core-technology-discussions/references", + "closestElementReference": "acknowledgements-and-references" + } + ], + "start-here": [ + { + "text": "Start Here", + "tagName": "h1", + "path": "start-here", + "closestElementReference": "start-here" + }, + { + "text": "This section of the documentation presents an in-depth exploration of the various technologies that comprise the Komodo Platform. It not only describes each technology in detail but also provides valuable links to comprehensive guides and engaging tutorials, tailored to ensure a thorough understanding of each technology.", + "tagName": "p", + "path": "start-here", + "closestElementReference": "start-here" + }, + { + "text": "For your convenience, we've also included a comprehensive glossary to elucidate key terminologies. Furthermore, we've curated a logical and progressive learning path, designed to help you master the technologies offered by Komodo Platform effectively and efficiently.", + "tagName": "p", + "path": "start-here", + "closestElementReference": "start-here" + }, + { + "text": "Join us as we embark on this enlightening journey of discovery, providing you with the tools and resources necessary to unleash the full potential of the Komodo Platform.", + "tagName": "p", + "path": "start-here", + "closestElementReference": "start-here" + }, + { + "text": "ToC for this section:", + "tagName": "p", + "path": "start-here", + "closestElementReference": "start-here" + } + ], + "start-here/learning-launchpad/common-terminology-and-concepts": [ + { + "text": "Common Terminology and Concepts", + "tagName": "h1", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "common-terminology-and-concepts" + }, + { + "text": "51% Attack", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "51-attack" + }, + { + "text": "A 51% attack is a dangerous event wherein an attacker uses the fair rules of blockchain technology to \"steal\" an item of value from their intended victim.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "51-attack" + }, + { + "text": "A Komodo Smart Chain that uses the Komodo Notary Node dPoW service receives protection from the 51% Attack.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "51-attack" + }, + { + "text": "Process of Conducting a 51% Attack", + "tagName": "h3", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "process-of-conducting-a-51-attack" + }, + { + "text": "In a 51% Attack, an attacker first performs a transaction that spends funds to their intended victim.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "process-of-conducting-a-51-attack" + }, + { + "text": "Once the victim distributes to the attacker the purchased item of value, the attacker then provides 51% of the total hash rate of the blockchain network to support a version of the blockchain history wherein the transaction never took place.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "process-of-conducting-a-51-attack" + }, + { + "text": "The attacker must maintain this hash rate long enough for the \"false\" version of history to become so deeply embedded, removal is impossible. Once accomplished, the attacker may discontinue their hash rate and leave with their spoils.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "process-of-conducting-a-51-attack" + }, + { + "text": "Komodo's dPoW Security Service is Designed to Prevent 51% Attacks", + "tagName": "h3", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "komodos-d-po-w-security-service-is-designed-to-prevent-51-attacks" + }, + { + "text": "The Komodo blockchain's consensus mechanism protects Komodo Smart Chains from 51% Attacks. For more information, see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "komodos-d-po-w-security-service-is-designed-to-prevent-51-attacks" + }, + { + "text": "Delayed Proof of Work Core Technology Discussion.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "komodos-d-po-w-security-service-is-designed-to-prevent-51-attacks" + }, + { + "text": "Delayed Proof of Work Core Technology Discussion.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "komodos-d-po-w-security-service-is-designed-to-prevent-51-attacks" + }, + { + "text": "Antara Address", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "An Antara Address is a user address that is uniquely associated with a single Antara Module.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "The Antara Address is based in part on the private key associated with the pubkey that the user provides during the initiation of an Antara-enabled Smart Chain instance.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "The Antara Address is different from a normal base58 encoded address, as the Antara Address also takes into account other information besides the pubkey's private key. The additional information includes an EVAL code that is unique to the Antara Module associated with this Antara Address.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "For more information, see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "Understanding Antara Addresses section here.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "Understanding Antara Addresses section here.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-address" + }, + { + "text": "Antara Customization", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "An Antara Customization is a blockchain-functionality enhancement created by the Komodo team to add features that extend the capabilities of the default Bitcoin/Zcash protocol fork, upon which Komodo is based.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "Antara Customizations are activated at runtime using special parameters.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "For more information, see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "Antara Customizations section here.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "Antara Customizations section here.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-customization" + }, + { + "text": "Antara Framework", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-framework" + }, + { + "text": "The Antara Framework is a collection of features and functionality created by the Komodo developers to enhance the capabilities available to a Smart Chain developer.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-framework" + }, + { + "text": "The framework includes Antara Customizations, Antara Modules, Antara Smart Chain Composer (coming soon), among other Komodo technologies.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-framework" + }, + { + "text": "Antara Module", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-module" + }, + { + "text": "An Antara Module is a Smart Chain enhancement that allows for arbitrary code to be included and evaluated as a part of achieving consensus.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-module" + }, + { + "text": "Most developers use Antara Modules without directly engaging with the arbitrary code of the module.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-module" + }, + { + "text": "Advanced developers can develop new modules by adding new arbitrary code into a new Antara Module.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "antara-module" + }, + { + "text": "Asset", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "asset" + }, + { + "text": "An asset in the Komodo ecosystem typically refers to a blockchain coin or token that represents value to the holder.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "asset" + }, + { + "text": "Assets can represent both digital and real-world valuables. However, enforcing blockchain asset behavior on real-world valuables requires an arbitrating party, such as a legal system or physical security service.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "asset" + }, + { + "text": "Atomic Swap", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "An atomic swap is an exchange of assets that takes place between two separate and unconnected blockchains.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "Atomic swap technology is unique in that it requires no middleman to hold the assets in escrow during the process of exchange. Instead, users retain the private keys to their funds until the precise moment the exchange occurs.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "Should either party fail to complete the trade, Komodo's atomic-swap software ensures that all parties receive their funds in return, and neither side receives a reward for the failure.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "discover the Komodo DeFi Framework Introduction section here.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "discover the Komodo DeFi Framework Introduction section here.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "atomic-swap" + }, + { + "text": "Block", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "A block is a collection of transactions.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "In the Komodo ecosystem, by default miners and stakers on a Smart Chain network create a new block every minute. Each block contains transactions that were created by users since the previous block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "Various block customizations are available in the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "Antara Customizations section.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "Antara Customizations section.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block" + }, + { + "text": "Block Explorer", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-explorer" + }, + { + "text": "A block explorer is a website that allows users to query information about a particular blockchain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-explorer" + }, + { + "text": "Users can request information about a specific transaction, block, address, and more.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-explorer" + }, + { + "text": "Block Reward", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "A block reward is a financial reward given to the miner or staker who finds the nonce necessary to create a new valid block hash.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "Because the Komodo ecosystem and the KMD main chain are designed to avoid competing directly with the Bitcoin hash rate, KMD also features a different kind of block reward.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "Users automatically receive a monthly 5.1% Reward (given in KMD) for holding +10KMD in any address on the KMD main chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "This reward derives from the funds that would otherwise be granted to a miner on a competitive Proof-of-Work based blockchain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "For more information, see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "Rewards section.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "Rewards section.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "block-reward" + }, + { + "text": "Burn", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "burn" + }, + { + "text": "In various instances, a user can \"burn\" cryptocurrency assets by sending the assets to an address from which recovery is provably impossible. The address in this situation is called a \"burn address.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "burn" + }, + { + "text": "Burn addresses can only receive funds. These addresses do not have associated private keys necessary for spending, and this can be verified using publicly available encryption tools.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "burn" + }, + { + "text": "CC Address", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-address" + }, + { + "text": "\"CC Address\" is another name for an ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-address" + }, + { + "text": "Antara Address.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-address" + }, + { + "text": "Antara Address.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-address" + }, + { + "text": "The term \"CC Address\", however, is used only among developers of Antara Modules, as this activity involves directly managing CryptoConditions (CC).", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-address" + }, + { + "text": "CC Transaction", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-transaction" + }, + { + "text": "A CC transaction is a transaction that is directly associated in any way with an Antara Module.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-transaction" + }, + { + "text": "A normal user would not call these types of transactions \"CC transactions,\" but would instead call them \"transactions\" as normal.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cc-transaction" + }, + { + "text": "Centralized Exchange (CEX)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "centralized-exchange-cex" + }, + { + "text": "A centralized exchange is a corporate entity that allows users to send cryptocurrency funds into the care of the corporation to hold in escrow while the user trades for alternate currencies with other users.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "centralized-exchange-cex" + }, + { + "text": "For more information about centralized exchanges, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "centralized-exchange-cex" + }, + { + "text": "read the Introduction to Komodo DeFi Framework here.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "centralized-exchange-cex" + }, + { + "text": "read the Introduction to Komodo DeFi Framework here.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "centralized-exchange-cex" + }, + { + "text": "Cluster", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cluster" + }, + { + "text": "A \"cluster\" can refer to a Smart Chain Cluster in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cluster" + }, + { + "text": "A Smart Chain cluster is a collective of Smart Chains that act in unison to manage a single coin supply, or to serve a unified purpose that requires multiple chains acting under a compatible directive.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cluster" + }, + { + "text": "This technology uses Komodo Antara Cross-Chain Syncing (\"MoMoM\") to function.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cluster" + }, + { + "text": "Coinbase", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": "To add coins into the total coin supply of a blockchain, the blockchain must mint new coins.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": "This minting process occurs in a special transaction that is included as the first transaction in each block of the blockchain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": "This transaction is called the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": "coinbase", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": " transaction.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "coinbase" + }, + { + "text": "Confirmation", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "confirmation" + }, + { + "text": "Confirmation typically refers to the confirmation of a block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "confirmation" + }, + { + "text": "A block is confirmed when a miner or staker submits a correctly formed block hash to the network for processing and the blockchain network accepts this block hash into the blockchain history.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "confirmation" + }, + { + "text": "Consensus Mechanism", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "consensus-mechanism" + }, + { + "text": "A consensus mechansim is a core aspect of any blockchain software. The consensus mechanism is the aspect of the software's code that collects all publicly available information, performs calculations to ensure that the history of the chain is proceeding in an honest manner, and sends the final result to be added to the chain of block histories that have come before.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "consensus-mechanism" + }, + { + "text": "Komodo software builds upon the Bitcoin consensus mechanism by default. The Bitcoin protocol is arguably the most secure and well tested consensus mechanism in existence, and therefore this provides Komodo users with a strong degree of security in any associated Komodo technology.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "consensus-mechanism" + }, + { + "text": "Cross-Chain Syncing", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cross-chain-syncing" + }, + { + "text": "Cross-Chain syncing is the process by which Smart Chains in the Komodo ecosystem are able to make actionable information on one chain available to another participating chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cross-chain-syncing" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cross-chain-syncing" + }, + { + "text": "read the Crosschain API documentation.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cross-chain-syncing" + }, + { + "text": "read the Crosschain API documentation.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "cross-chain-syncing" + }, + { + "text": "CryptoCondition (CC)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "crypto-condition-cc" + }, + { + "text": "A CryptoCondition is a conditational statement that is evaluated by the consensus mechanism. CryptoConditions allows for arbitrary logical requirements and fulfillments to be evaluated during runtime.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "crypto-condition-cc" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "crypto-condition-cc" + }, + { + "text": "read the Advanced Development Tutorial Series.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "crypto-condition-cc" + }, + { + "text": "read the Advanced Development Tutorial Series.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "crypto-condition-cc" + }, + { + "text": "Daemon", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "daemon" + }, + { + "text": "A daemon is an instance of software running on the user's machine. Typically, the word \"daemon\" refers to a software process that runs in the background on the user's node, as opposed to running in a manner that would require constant direct engagement.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "daemon" + }, + { + "text": "The name of the Komodo Smart Chain software, \"komodod,\" is an abbreviation of \"Komodo Daemon.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "daemon" + }, + { + "text": "Decentralization", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralization" + }, + { + "text": "Decentralization is the movement of transferring any subject from centralized parties and individuals to decentralized parties.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralization" + }, + { + "text": "In blockchain, decentralization often refers to the ability to accurately record and verify a historical record. Whereas in the old record-keeping system, a centralized authority recorded and verified the accuracy of a ledger, the blockchain system allows all users on the network to record and verify all activity.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralization" + }, + { + "text": "Decentralized Exchange (DEX)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralized-exchange-dex" + }, + { + "text": "A decentralized exchange (DEX) is an entity that enables users to trade assets within at least a partially decentralized environment.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralized-exchange-dex" + }, + { + "text": "For example, a common DEX uses a decentralized network of gateway nodes to hold user funds in escrow within the trading environment. No single individual has access to the escrow treasury.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralized-exchange-dex" + }, + { + "text": "Komodo features a new form of DEX: Komodo DeFi Framework. This uses atomic swaps, and provides a revolutionary form of trading cryptocurrencies. Users maintain control over their assets at all times during the trading process, which makes Komodo DeFi Framework a truly decentralized DEX.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "decentralized-exchange-dex" + }, + { + "text": "Initial DEX Offering (IDO)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "A initial DEX offering (IDO) is a method of releasing cryptocurrency assets to the public without passing through the technology of a centralized authority.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "read the IDO section.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "read the IDO section.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "Delayed Proof of Work (dPoW)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "Delayed Proof of Work is Komodo's signature method for achieving consensus on a network of multiple blockchains.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "Delayed proof of work relies on a small network of sixty-four nodes that create a trustless notarization of all the history of the Komodo ecosystem and write this notarization into the history of a stronger Proof of Work blockchain network (Bitcoin).", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "By having the notarization visible for all to view and verify, Komodo enables the ecosystem to operate with Bitcoin-level security without having to compete directly with Bitcoin for PoW hash rate security.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "An important aspect of notary nodes to understand is that notary nodes are not arbiters of \"truth.\" All information a notary nodes signs in a notarization is created publicly and verified by all full nodes on any participating blockchain. Notary nodes cannot alter transaction histories; notary nodes can only notarize the history on behalf of the network, and nothing more.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "read the Core Technology Discussion regarding dPoW.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "read the Core Technology Discussion regarding dPoW.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "delayed-proof-of-work-d-po-w" + }, + { + "text": "Dependency", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "dependency" + }, + { + "text": "In a programming environment, a dependency can be described as a foreign collection of code that the developer adds to their source code in order to enhance functionality.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "dependency" + }, + { + "text": "The developer typically does not hold a strong understanding of the dependency and must trust that the developer of this dependency is acting with professional due diligence.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "dependency" + }, + { + "text": "In blockchain technology, developers are encouraged to avoid dependencies wherever possible.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "dependency" + }, + { + "text": "Double Spend", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "double-spend" + }, + { + "text": "A \"double spend\" is the act of spending the same value twice, and blockchain technology is built to prevent users from this behavior.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "double-spend" + }, + { + "text": "In a double spend, a user sends money to one person, and then sends the exact same money again to another person.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "double-spend" + }, + { + "text": "The dangers associated with a double spend prevented digital currency from becoming feasible until the invention of the Bitcoin protocol's consensus mechanism.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "double-spend" + }, + { + "text": "Equihash Algorithm", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "equihash-algorithm" + }, + { + "text": "An equihash algorithm is a blockchain mining algorithm that discourages certain high-powered and specially built mining devices from mining on the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "equihash-algorithm" + }, + { + "text": "Gas", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "gas" + }, + { + "text": "Gas is a concept that pertains to foreign blockchain platforms, such as Ethereum.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "gas" + }, + { + "text": "Gas is a cryptocurrency that is spent as payment for the blockchain's decentralized network of nodes to process arbitrary \"smart contract\" code.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "gas" + }, + { + "text": "Komodo does not require gas. Rather, when users execute arbitrary code (using Antara Modules), the only fee required is the fee paid to the miners when performing a transaction. This fee is paid in the native coin on which the arbitrary code is run. Compared to the gas-based smart-contract model, the Komodo fee structure is exponentially less expensive.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "gas" + }, + { + "text": "Genesis Attack", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-attack" + }, + { + "text": "In a Genesis Attack, the attacker launches a fresh version of the targeted blockchain. Using a high rate of hash power and competitive mining equipment, the attacker proceeds to recreate the entire blockchain history as though the so-called \"true\" history never existed.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-attack" + }, + { + "text": "Once the block height of the attacker's chain surpasses the height of the \"true\" chain, the attacker releases their empty creation on the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-attack" + }, + { + "text": "When the default Bitcoin protocol encounters the attacker's chain on the network, the protocol observes that this \"empty\" chain is created properly and is longer than the so-called \"true\" chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-attack" + }, + { + "text": "At this point, the protocol will automatically erase the \"true\" chain from all nodes on the network and the nodes will then sync the \"empty\" blockchain to their local machines.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-attack" + }, + { + "text": "Genesis Block", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-block" + }, + { + "text": "The first block in a blockchain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-block" + }, + { + "text": "Historically, a large portion of the total coin supply of the associated blockchain is distributed to the miner who mines the Genesis Block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "genesis-block" + }, + { + "text": "Hash Rate", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "hash-rate" + }, + { + "text": "The rate at which hashes are created by a node on the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "hash-rate" + }, + { + "text": "Often, the term \"hash rate\" is used in reference to the total power of all miners mining a blockchain network. Miners produce hashes in their search for a properly formed hash that satisfies the requirements for adding the next block to the blockchain history.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "hash-rate" + }, + { + "text": "Iguana Core", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "iguana-core" + }, + { + "text": "Iguana Core is a core component in essentially all Komodo software. Iguana is a collection of blockchain tools and enhancements, designed by Komodo's lead developer, JL777.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "iguana-core" + }, + { + "text": "Jumblr", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "jumblr" + }, + { + "text": "Jumblr was a decentralized zk-SNARK based mixing service on the Komodo main chain, KMD. Jumblr enabled users to coordinate their transparent-to-private and private-to-transparent currency conversions. This allowed users to mask their privacy-related transactions by performing them in equal amounts synchronously.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "jumblr" + }, + { + "text": "In the spring of 2019, Jumblr technology was removed from the KMD chain. This occurred in response to community feedback and industry developments.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "jumblr" + }, + { + "text": "Liquidity Maker", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-maker" + }, + { + "text": "A liquidity maker on the Komodo DeFi Framework network is a user who offers assets for trade and waits for a user to accept the offer.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-maker" + }, + { + "text": "Liquidity Pool", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-pool" + }, + { + "text": "A liquidity pool is a collection of live offers on an Komodo DeFi Framework trading network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-pool" + }, + { + "text": "Liquidity Taker", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-taker" + }, + { + "text": "A liquidity taker on the Komodo DeFi Framework network is a user who accepts a standing and live offer of another user.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "liquidity-taker" + }, + { + "text": "Magic", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "magic" + }, + { + "text": "To help differentiate one runtime instance of Komodo software from another, komodod creates a unique number for each chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "magic" + }, + { + "text": "The development name this number is \"magic.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "magic" + }, + { + "text": "Each time a request arrives in the Komodo daemon, the magic number is checked to ensure that it is the number expected. When correct, the daemon allows the request access to the process.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "magic" + }, + { + "text": "Mempool", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "mempool" + }, + { + "text": "The collection of unprocessed transactions on the network waiting for confirmation.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "mempool" + }, + { + "text": "Miner", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "miner" + }, + { + "text": "A user, or hardware controlled by a user, that is attempting to collect transactions from the mempool and format them in a new block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "miner" + }, + { + "text": "The miner who is first to mine a new block typically receives a reward from the network. This can include fees from the transactions successfully mined in the block. This can also include a possible coinbase transaction that adds new coins to the chain's total coin supply and gives them to the miner.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "miner" + }, + { + "text": "Multi-Chain Syncing", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "multi-chain-syncing" + }, + { + "text": "Multi-chain syncing is the act of syncing one Komodo Smart Chain with another with verifiable and actionable information.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "multi-chain-syncing" + }, + { + "text": "This allows Komodo Smart Chains to work together to serve an audience that may need more than one blockchain for scalability or other purposes.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "multi-chain-syncing" + }, + { + "text": "Multi-Chain Architecture", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "multi-chain-architecture" + }, + { + "text": "A multi-chain architecture is a term to describe a blockchain platform that allows for multiple blockchains to operate and collaborate together within the same network, and optionally using the same coin supply.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "multi-chain-architecture" + }, + { + "text": "Node", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "node" + }, + { + "text": "A node can be a unique desktop computer connected to the Internet. It can also be a virtual-private server (VPS) that is rented or purchased, and which the developer can access at will. Or, it can be another type of unique instance of a computational machine.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "node" + }, + { + "text": "Nonce", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "A nonce is a number that the miner guesses while attempting to create a block hash that fits the requirements for the consensus mechanism and the next block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "Nonce is short for, \"a number you use once.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "More information ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "is available in this section.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "is available in this section.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "nonce" + }, + { + "text": "Notarization", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "A \"notarization\" in the Komodo ecosystem is a special transaction performed by the notary nodes that writes a hash of the entire Komodo history up to this point in time.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "Notarizations are a foundational aspect of Komodo's security capabilities.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "For more information, ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "read the dPoW section on notary nodes.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "read the dPoW section on notary nodes.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notarization" + }, + { + "text": "Notary Node", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notary-node" + }, + { + "text": "A notary node is an elected security steward in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notary-node" + }, + { + "text": "There are 64 notary nodes in total.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notary-node" + }, + { + "text": "Notary nodes can be either a single individual, or a group of people working together to secure and manage one node.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "notary-node" + }, + { + "text": "On-Demand Notarization", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "on-demand-notarization" + }, + { + "text": "The software of a default, unmodified, PoW-based Komodo Smart Chain will only instruct mining nodes to attempt to mine a new block when there are a few transactions in the mempool. This conserves energy and helps the chains to avoid processing nearly empty blocks.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "on-demand-notarization" + }, + { + "text": "Developers who wish to avoid the on-demand notarization situation have a few options available. Using Antara Customizations that allow for a hybrid of PoS and PoW will help to keep the blockchain stable when transaction activity is low. Also, developers can create a node on the network that constantly executes transactions of low value, to ensure the mempool is always non-empty.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "on-demand-notarization" + }, + { + "text": "Orderbook", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "orderbook" + }, + { + "text": "An orderbook is a record of all trade offers on an exchange. Typically, the orderbook only displays current offers.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "orderbook" + }, + { + "text": "Komodo's Komodo DeFi Framework software offers a decentralized orderbook, wherein users send orders to a P2P network for distribution, and all nodes on the network assemble the orderbook locally.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "orderbook" + }, + { + "text": "Passphrase", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "passphrase" + }, + { + "text": "A passphrase is typically a twelve to twenty-four sequence of words that is used as a base password to create a series of blockchain addresses and private keys.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "passphrase" + }, + { + "text": "Proof of Stake (PoS)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "proof-of-stake-po-s" + }, + { + "text": "A proof-of-stake (PoS) consensus mechansim requires users to place personal funds on the network as collatoral in exchange for the right to \"stake\" new blocks on the blockchain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "proof-of-stake-po-s" + }, + { + "text": "Proof of Work", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "proof-of-work" + }, + { + "text": "A proof-of-work (PoW) consensus mechanism requires miners on the network to complete a simple puzzle before the miner may obtain the right to add a new block to the blockchain and receive a block reward.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "proof-of-work" + }, + { + "text": "Solving the puzzle requires work from the computer, and therefore the correct answer to the puzzle is considered to be \"proof of work\" accomplished in solving the puzzle.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "proof-of-work" + }, + { + "text": "Public Key (pubkey)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "public-key-pubkey" + }, + { + "text": "A public key or pubkey is a blockchain address that can receive funds on the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "public-key-pubkey" + }, + { + "text": "Sending funds out of this pubkey requires a matching private key that unlocks this public key (also called a public address).", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "public-key-pubkey" + }, + { + "text": "On a non-Komodo blockchain a user may not interact often with their full pubkey, but rather they may use an abbreviated version of it. This shorter version is called a based58 encoded address.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "public-key-pubkey" + }, + { + "text": "On the other hand, users are required to use at least one full pubkey when using Antara Modules. This pubkey serves as the basis for all Antara-related addresses.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "public-key-pubkey" + }, + { + "text": "Remote Procedure Call (RPC)", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "remote-procedure-call-rpc" + }, + { + "text": "A remote procedure call (RPC) is a call to the Komodo daemon from a separate software process.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "remote-procedure-call-rpc" + }, + { + "text": "An RPC can request that the Komodo daemon send money to an address, or the RPC could request information about the state of the chain, among many other possibilities.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "remote-procedure-call-rpc" + }, + { + "text": "Runtime Fork", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "runtime-fork" + }, + { + "text": "In general, Komodo Smart Chains are created using the exact same software installation, but each Smart Chain has a separate data directory.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "runtime-fork" + }, + { + "text": "Each time the user initiates an instance of Smart Chain software, the user includes parameters that indicate which Smart Chain they are launching. These parameters can be simple, such as the \"name\" or \"coin supply\" of the desired Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "runtime-fork" + }, + { + "text": "Because each Smart Chain is based on the same software (generally speaking) and they differentiate at the moment of initiation, they are called \"runtime forks.\" This represents the fact that each Smart Chain forks from the main KMD chain at runtime.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "runtime-fork" + }, + { + "text": "Satoshi", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": "The smallest divisible unit of a coin. All coins in the Komodo ecosystem follow the Bitcoin-protocol standard where ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": "1", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": " coin has ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": "8", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": " decimal places. Therefore, a satoshi is ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": "0.00000001", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": " of a coin.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "satoshi" + }, + { + "text": "SPV Electrum Server", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "spv-electrum-server" + }, + { + "text": "An SPV Electrum Server is a server that provides \"lite mode\" type functionality. These servers have a full copy of the blockchain history and the servers are able to help complete the requests of users on the blockchain network who do not want to download and sync the full blockchain history.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "spv-electrum-server" + }, + { + "text": "SPV Servers cannot assist a user to perform a zero-knowledge type transaction. Instead, users creating zero-knowledge transactions must download the full blockchain to their local node.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "spv-electrum-server" + }, + { + "text": "Seed Node", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "seed-node" + }, + { + "text": "A seed node is a node that is called at runtime and helps the caller to find other nodes on the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "seed-node" + }, + { + "text": "Seed nodes help new nodes on the network to obtain enough of a connection to the peer-to-peer network to download and sync the blockchain's history.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "seed-node" + }, + { + "text": "Smart Chain", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-chain" + }, + { + "text": "A Smart Chain is a blockchain built on Komodo technology.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-chain" + }, + { + "text": "Komodo is a fork of Zcash, which is itself a fork of Bitcoin. Therefore, each Smart Chain contains all the upstream technology, including Komodo, Zcash, and Bitcoin features.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-chain" + }, + { + "text": "A few notable Komodo-based features of Smart Chains include Antara Modules, which allow for arbitrary code to be executed as a part of achieving consensus, and cross-chain syncing, which allow for multiple Smart Chains to collaborate in maintaining scarcity and user activity.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-chain" + }, + { + "text": "Smart Contract", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": "A smart contract is a popular concept on other blockchain platforms. A smart contract allows developers to program scripts that update blockchain state based on user activity.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": "Komodo has a replacement technology, Antara Modules, that are capable of achieving all that a smart contract can achieve, and more. Please see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": "Antara Overview discussions", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": " for more information.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": "Antara Overview discussions", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "smart-contract" + }, + { + "text": "Staker", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "staker" + }, + { + "text": "A staker is a user, or a node controlled by a user, that places funds in escrow on a Smart Chain network in exchange for the right to \"stake\" new blocks in the blockchain history. A staker receives rewards each time they successfully stake a block.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "staker" + }, + { + "text": "T Address", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "t-address" + }, + { + "text": "A \"t address\" is a transparent address. Transactions performed in this address are fully visible to the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "t-address" + }, + { + "text": "T Transaction", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "t-transaction" + }, + { + "text": "A \"t transaction\" is a transparent transaction. The transaction can be fully viewed by the network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "t-transaction" + }, + { + "text": "Terminal", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "terminal" + }, + { + "text": "The UNIX terminal is a simple software application that allows a user to execute commands and receive replies without a graphical user interface (GUI).", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "terminal" + }, + { + "text": "Linux and MacOS users will find a UNIX terminal installed by default, whereas Windows users may need to install secondary software, such as ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "terminal" + }, + { + "text": "GitBash.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "terminal" + }, + { + "text": "GitBash.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "terminal" + }, + { + "text": "Token", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "token" + }, + { + "text": "A token is a digital asset which functions on top of a blockchain. Tokens are separate from coins.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "token" + }, + { + "text": "Foreign blockchain platforms, such as Ethereum, use token models such as ERC20 to allow users to print, distribute, and program their own currencies.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "token" + }, + { + "text": "The Komodo Platform uses the Tokens Antara Module (or any similar module) to transform and restrict the Smart Chain's coins so that they behave as tokens with desirable features This allows for ERC20-like possibilities, and more.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "token" + }, + { + "text": "Trade Clearing", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-clearing" + }, + { + "text": "The term \"trade clearing\" refers to the process of completing a promised trade between users.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-clearing" + }, + { + "text": "In Komodo DeFi Framework, trades are first matched on the peer-to-peer network, and then Komodo DeFi Framework uses our own signature atomic-swap process to clear the trade. Once both users either complete their sides of the trade, or abandon the procedure (and receive their appropriate refunds), the trade is considered cleared.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-clearing" + }, + { + "text": "Trade Matching", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-matching" + }, + { + "text": "The term \"trade matching\" refers to the process of matching an offer to buy or sell with a willing trade partner.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-matching" + }, + { + "text": "In Komodo DeFi Framework, trade offers are distributed on a decentralized peer-to-peer network. Liquidity makers make new offers, and liquidity takers accept offers made by liquidity makers.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trade-matching" + }, + { + "text": "Trustless", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "The word \"trust\" has a different connotation in blockchain technology.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "Blockchain's specific and unique contribution to the field of technology is to allow users ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "not", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": " to trust each other in achieving consensus over a history of transactions.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "Rather, users all collect the same data from the open peer-to-peer network and use the same software and calculations to arrive at the same conclusions themselves. The less an individual user must trust another individual user, the more effective the blockchain is.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "By removing the need for trust, power over the history of transactions and the correct \"truth\" of history is decentralized in favor of the average user, and away from centralized points of control. As centralized points of control are easily corrupted and manipulated, this has the potential to allow the average user to have a more fair level of influence within the blockchain network.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "trustless" + }, + { + "text": "Turing Complete", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "turing-complete" + }, + { + "text": "A programming language is considered \"Turing Complete\" if, when granted a few basic assumptions, the language is theoretically able to “compute any computable sequence.”", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "turing-complete" + }, + { + "text": "In other words, the language should be able to solve any mathematical problem that uses only computable numbers.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "turing-complete" + }, + { + "text": "According to Turing’s definition, “...a number is computable if its decimal can be written down by a machine.”", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "turing-complete" + }, + { + "text": "Komodo's Antara Modules allow for Turing Complete programming languages to add arbitrary code to the evaluation process of a consensus mechanism of a Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "turing-complete" + }, + { + "text": "Tx", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "tx" + }, + { + "text": "An abbreviation of \"transaction.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "tx" + }, + { + "text": "Txid", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "txid" + }, + { + "text": "An abbreviation of \"transaction id.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "txid" + }, + { + "text": "Utxo", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "The term \"utxo\" is an abbreviated form of \"unspent transaction.\"", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "Utxos can be difficult for new developers to understand.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "For more information, please ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "read the Utxo explanation here.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "read the Utxo explanation here.", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "utxo" + }, + { + "text": "Virtual Machine Interpreter", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "virtual-machine-interpreter" + }, + { + "text": "A Virtual Machine (VM) interpreter is a popular concept on other blockchain platforms. The virtual machine is decentralized across all nodes on the network. Any smart contract code that a user pays gas to have executed will be evaluated within the VM. The VM sends the results to the associated blockchain for transaction processing.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "virtual-machine-interpreter" + }, + { + "text": "Komodo's Smart Chain technology eliminates the need for a virtual machine. Instead, developers add their arbitrary code to an Antara Module. The code is evaluated as a part of achieving blockchain consensus. Users do not need to pay gas fees. Instead, they only pay the transaction fee necessary to send their transaction to the network. This is paid in the native coin of the Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "virtual-machine-interpreter" + }, + { + "text": "Z Address", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "A \"z address\" is a privacy-enabled address. These are active on a default Smart Chain, but developers of the Smart Chain can elect to disable z addresses.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "Users use the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "z_sendmany", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": " remote procedure call (RPC) when dealing with z addresses.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "z_sendmany", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "Z addresses only offer privacy when funds are sent from one z address to another. When a user sends money from a t address to a z address, or vice versa, the transaction should not be considered private.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "privacy discussion section", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": " for further details and warnings.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "privacy discussion section", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-address" + }, + { + "text": "Z Transaction", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": "A \"z transaction\" is a zero-knowledge transaction. When a z transaction occurs between two z addresses, only the user is able to see the details of the transaction. No further data remains in the public domain for later analysis.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": "privacy discussion section", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": " for further details and warnings.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": "privacy discussion section", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "z-transaction" + }, + { + "text": "Zcash Parameters", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "The Zcash parameters are an implementation of zk-SNARK technology that allow for zero-knowledge transactions.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "Assuming the Zcash parameters were implemented properly, zero-knowledge transactions leave no trace in the public domain for later data analysis.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "privacy discussion section", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": " for further details and warnings.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "privacy discussion section", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zcash-parameters" + }, + { + "text": "zk-SNARK", + "tagName": "h2", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": "\"zk-SNARK\" stands for \"zero-knowledge succinct non-interactive argument of knowledge.\" This is a powerful form of privacy technology pioneered by the Zcash team.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": "As Komodo is downstream from the Zcash protocol (which is itself downstream from Bitcoin), Komodo inherits all zk-SNARK technology by default.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": "Please see the ", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": "privacy discussion section", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": " for further details and warnings.", + "tagName": "p", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + }, + { + "text": "privacy discussion section", + "tagName": "a", + "path": "start-here/learning-launchpad/common-terminology-and-concepts", + "closestElementReference": "zk-snark" + } + ], + "start-here/learning-launchpad": [ + { + "text": "Learning Path Outline", + "tagName": "h1", + "path": "start-here/learning-launchpad", + "closestElementReference": "learning-path-outline" + }, + { + "text": "Introduction", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "Welcome to the educational center for Komodo technology. This section provides a descriptive outline for new developers in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "The content first familiarizes the developer with basic blockchain principles, and then narrows down on principles that are unique to Komodo.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "Once the developer is comfortable on a conceptual level, the content leads the developer into the process of utilizing the Komodo software itself in a development environment.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "Using Komodo software is about as difficult as using any other programming framework. The developer needs to first understand how the software functions on a conceptual level, and then the developer learns the vocabulary necessary to integrate Komodo software into their personal creative endeavors.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "This process can take anywhere from a single full day to a few weeks, depending upon the skill level of the developer. Each step of the journey provides a time estimate based on a normal developer that has a few years' experience in a mainstream programming language.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction" + }, + { + "text": "A Description of Our Intended Audience", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": "As mentioned in the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": "Documentation Orientation", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": " section, this website is intended for readers who are already familiar with a mainstream programming language.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": "Documentation Orientation", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": "Now, we divide readers further into two categories.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "a-description-of-our-intended-audience" + }, + { + "text": "The Normal Komodo Developer", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "The first is a developer who intends to utilize Komodo technology only as it is provided to them. This is the most common type of developer we expect in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "This developer likely intends to utilize Komodo software to release a blockchain product that either stands alone, or compliments another software product the developer is creating.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "For example, this developer could be involved with the creation of a blockchain-based asset for a business they are building. This developer expects an audience to purchase and trade these assets, and the audience may utilize Komodo's white-label software for asset management.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "As another example, this type of developer could be building software for a web application that integrates with blockchain technology. The developer could be utilizing Antara Modules, such as ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "Oracles,", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": " to securely record data that is relevant to or even created by their audience. Once the data is recorded, the developer could display this information on their website, for simple gameplay enhancements or data-driven storytelling.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "Oracles,", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-normal-komodo-developer" + }, + { + "text": "The Advanced Komodo Developer", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "The advanced Komodo developer intends both to use the Komodo software as it is provided to them, and also to add in their own customized functionality beyond the scope of the normal software. This developer is highly skilled in a mainstream programming language, such as C/C++, and is prepared to thoroughly understand and manipulate blockchain software.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "For example, this developer may intend to build customized Antara Modules to add to the consensus mechanism of their Smart Chain. These customized modules could create unique and fully playable blockchain-based games of a complexity level similar to ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "this Komodo-based Roguelike game", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": ", or ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "this Komodo-based version of Sudoku.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "this Komodo-based Roguelike game", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "this Komodo-based version of Sudoku.", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-advanced-komodo-developer" + }, + { + "text": "How Each Type of Developer Should Approach the Educational Outlines", + "tagName": "h4", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "Both types of developers should begin at the beginning.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "The Normal Developer should proceed until they reach the content with a difficulty level labeled ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "Advanced", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": " and then stop, while the Advanced Developer there should proceed.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "We recommend that developers complete steps with a priority label of ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": ". There are also a few sections labeled ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "Optional", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": " that may be skipped, although the developer who completes them will, hopefully, find them worth the while as these sections contain short cuts and other recommended best practices.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "how-each-type-of-developer-should-approach-the-educational-outlines" + }, + { + "text": "Step 0: Install Komodo Software", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Time: 10 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Access to Komodo software allows the developer to immediately begin learning through direct experimentation.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "We recommend that all developers install Komodo software not by using pre-built binaries, but rather by installing and compiling from source code.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "This allows the developer to later have instant access to Komodo security patches, feature enhancements, and upgrades.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Link to Komodo Source Code Installation Methods", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Link to Komodo Source Code Installation Methods", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Link to Komodo DeFi Framework Source Code Installation Methods", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Link to Komodo DeFi Framework Source Code Installation Methods", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-0-install-komodo-software" + }, + { + "text": "Step 1: Reach Out to Our Community on Discord", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Time: 5 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Discovering Komodo is best accomplished with a friend.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Komodo utilizes a third-party chat service called Discord.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Reach out to us on Discord at this link.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Reach out to us on Discord at this link.", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Once you are logged in to the Komodo Discord server, you will see a list of channels on the left side of your browser. All channels begin with a ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": " hashtag.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Say hello in channels such as ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#arrivals", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": ", ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#start-here", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": ", or ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#introductions", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": ".", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "The ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#support", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": " channel is a good place to ask for basic support with Komodo software.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "To find fellow developers, head to the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "#dev-general", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": " channel. All channels that begin with ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "dev", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": " are created for developers.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "We look forward to meeting you there!", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-1-reach-out-to-our-community-on-discord" + }, + { + "text": "Step 2: Begin a Conceptual Understanding of Komodo's Software", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "Time: 10 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "With the Komodo software installed and a connection made to our community, you are prepared to begin learning about Komodo on a conceptual level.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "These conceptual concepts must be grasped first, before attempting to manipulate blockchain assets and software. The concepts help to orient you in your development process.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-2-begin-a-conceptual-understanding-of-komodos-software" + }, + { + "text": "Platform Overview", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "platform-overview" + }, + { + "text": "The Platform Overview section provides the broadest conceptual understanding of the Komodo Platform.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "platform-overview" + }, + { + "text": "Link to Platform Overview.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "platform-overview" + }, + { + "text": "Link to Platform Overview.", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "platform-overview" + }, + { + "text": "Product Introductions", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "product-introductions" + }, + { + "text": "The Production Introductions section contains simplified introductions to Komodo software products and their architecture.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "product-introductions" + }, + { + "text": "Link to Product Introductions", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "product-introductions" + }, + { + "text": "Link to Product Introductions", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "product-introductions" + }, + { + "text": "Doc Orientation", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "doc-orientation" + }, + { + "text": "The Doc Orientation section gives the reader an understanding of the nature of this documentation website.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "doc-orientation" + }, + { + "text": "Doc Orientation", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "doc-orientation" + }, + { + "text": "Doc Orientation", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "doc-orientation" + }, + { + "text": "Step 3: Read the Core Technology Discussions Section", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-3-read-the-core-technology-discussions-section" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-3-read-the-core-technology-discussions-section" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-3-read-the-core-technology-discussions-section" + }, + { + "text": "Time: 1 - 8 Hours", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-3-read-the-core-technology-discussions-section" + }, + { + "text": "The Core Technology Discussions section provides a thorough explanation of blockchain technology and Komodo. The principles explained herein are crucial in later stages.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-3-read-the-core-technology-discussions-section" + }, + { + "text": "Introduction", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction-2" + }, + { + "text": "The Introduction section presents a broad overview of the nature of the Komodo ecosystem and the philosophy and goals that drive this community.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction-2" + }, + { + "text": "Link to Introduction Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction-2" + }, + { + "text": "Link to Introduction Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "introduction-2" + }, + { + "text": "Komodo DeFi Framework and Atomic Swaps", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "As a developer gains understanding of blockchain technology, and as your audience grows, you will likely seek to make atomic swaps available to your users. The Komodo DeFi Framework software is our signature method for conducting atomic swaps.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "This section helps the reader to understand why atomic swaps are a key to the future of cryptocurrency trading and how they work.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "Link to Komodo DeFi Framework and Atomic Swaps Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "Link to Komodo DeFi Framework and Atomic Swaps Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-de-fi-framework-and-atomic-swaps" + }, + { + "text": "Komodo SDK", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Komodo SDK encompasses several key components, including the Komodo DeFi Framework, Komodo Core Protocol and the Komodo GUI/DAPP Suite. By providing a complete suite of technologies and tools, the Komodo SDK aims to simplify the development and deployment process for developers, while offering flexibility and scalability for different project requirements.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Link to Komodo SDK Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Link to Komodo SDK Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "komodo-sdk" + }, + { + "text": "Initial DEX Offering (IDO)", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "This section helps the reader to understand the basic process an entrepreneur and developer goes through in releasing a new blockchain-based product. This can be called a \"Initial DEX Offering,\" or IDO for brevity.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "This also helps the reader to understand how Komodo uses runtime forks to allow each Komodo developer to create their own blockchain that can be connected to the rest of the ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "Link to IDO Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "Link to IDO Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "initial-dex-offering-ido" + }, + { + "text": "Delayed Proof of Work", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "delayed-proof-of-work" + }, + { + "text": "The Delayed Proof of Work section explains to the reader the fundamental aspects of blockchain technology that apply to members of the Komodo ecosystem. The primary aspects that a developer should understand here are the value of the consensus mechanism and the nature of Komodo notarization.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "delayed-proof-of-work" + }, + { + "text": "Link to Delayed Proof of Work Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "delayed-proof-of-work" + }, + { + "text": "Link to Delayed Proof of Work Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "delayed-proof-of-work" + }, + { + "text": "The Antara Framework", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-antara-framework" + }, + { + "text": "The Antara Framework section explains to the reader the basic concepts of the Antara Framework. This framework is a key aspect of the Komodo development process. The framework provides functionality that can be compared to \"smart contracts\" found on other blockchain platforms.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-antara-framework" + }, + { + "text": "Link to Antara Framework Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-antara-framework" + }, + { + "text": "Link to Antara Framework Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "the-antara-framework" + }, + { + "text": "Miscellaneous", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "miscellaneous" + }, + { + "text": "The Miscellaneous section explains a few leftover concepts that we recommend the reader understand. For example, a developer will no doubt encounter a \"Utxo,\" or the developer may be curious about privacy on a Komodo Smart Chain, and this section provides preparation.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "miscellaneous" + }, + { + "text": "Link to Miscellaneous Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "miscellaneous" + }, + { + "text": "Link to Miscellaneous Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "miscellaneous" + }, + { + "text": "Step 4: Complete the Beginner Series in the Antara Tutorials Section", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Time: 1 Hour", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "The Beginner Series tutorials provide the reader with an easy pathway into the process of using Komodo technology.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Many of the technical aspects of using Komodo software are simplified here, to allow you to familiarize yourself with the nature of blockchain commands and responses without having to encounter everything all at once.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "As a part of this tutorial, you will download a separate piece of software (a Docker-based image) in which you will enter your first commands.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Towards the end of the series, we then walk you through the process of interacting with Komodo Smart Chains in the terminal.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Link to Beginner Series Tutorial - Part 0 - Preparation", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Link to Beginner Series Tutorial - Part 0 - Preparation", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-4-complete-the-beginner-series-in-the-antara-tutorials-section" + }, + { + "text": "Step 5: Familiarize Yourself with Smart Chain API Basics", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Time: < 1 Hour", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Having completed the Beginner Series, the reader is now prepared to use the terminal more frequently while interacting with Komodo Smart Chains.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "The Smart Chain API Basics tutorial walks the reader through many of the common commands and Remote Procedure Calls (RPCs) and assists the reader in becoming comfortable in the Komodo environment.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Link to Smart Chain API Basics Tutorial", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Link to Smart Chain API Basics Tutorial", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-5-familiarize-yourself-with-smart-chain-api-basics" + }, + { + "text": "Step 6: Enhance Your Development Environment and Experience", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "Priority: Optional", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "Time: 1 - 5 Hours", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "At this point, the Normal Developer should be generally comfortable with the basic concepts of utilizing the default Komodo Smart Chain software.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "The following tutorials are optional, but we still recommend that the developer explore the concepts contained herein. You may find short cuts and solutions that will help you avoid common pitfalls in the development process.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-6-enhance-your-development-environment-and-experience" + }, + { + "text": "Basic Environment Setup for Linux VPS", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "basic-environment-setup-for-linux-vps" + }, + { + "text": "Many, if not most, developers in the Komodo ecosystem use a Linux-based Virtual Private Server (VPS) to build software. Working on a VPS simplifies many aspects of the development process, as the VPS grants the developer a disposable and rapidly customizable environment for troubleshooting.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "basic-environment-setup-for-linux-vps" + }, + { + "text": "Link to Basic Environment Setup for Linux", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "basic-environment-setup-for-linux-vps" + }, + { + "text": "Link to Basic Environment Setup for Linux", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "basic-environment-setup-for-linux-vps" + }, + { + "text": "Creating Komodo Smart Chains", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Up to this point in the outline, the developer has either relied on tutorial software to provide a Smart Chain, or the developer has relied on a ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "regtest", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": " chain.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Now, it is time to try creating your own Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Link to Creating a Default Smart Chain", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Link to Creating a Default Smart Chain", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-komodo-smart-chains" + }, + { + "text": "Creating a Smart Chain on a Single Node", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-a-smart-chain-on-a-single-node" + }, + { + "text": "Sometimes in the development process, the developer may find convenience in having a Smart Chain running on a single node. This is not the way that blockchain software is intended to function, but single-node blockchains are useful, nonetheless.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-a-smart-chain-on-a-single-node" + }, + { + "text": "Link to Creating a Smart Chain on a Single Node", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-a-smart-chain-on-a-single-node" + }, + { + "text": "Link to Creating a Smart Chain on a Single Node", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "creating-a-smart-chain-on-a-single-node" + }, + { + "text": "Running Komodo Software in Debug Mode", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "Debug Mode allows a developer to access the last lines of code executed by the daemon before the software crashes.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "A Normal Developer will likely only use this when communicating with a support agent, in the unlikely event of a malfunction in the software. An Advanced Developer, on the other hand, may use Debug Mode frequently.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "Link to Running Komodo Software in Debug Mode", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "Link to Running Komodo Software in Debug Mode", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "running-komodo-software-in-debug-mode" + }, + { + "text": "Updating Smart Chain Software From Source Code", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "updating-smart-chain-software-from-source-code" + }, + { + "text": "As the developer installs their software from source code, updating frequently is easy and recommended. Read the following section to become familiarized.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "updating-smart-chain-software-from-source-code" + }, + { + "text": "Link to Updating Smart Chain Software From Source Code", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "updating-smart-chain-software-from-source-code" + }, + { + "text": "Link to Updating Smart Chain Software From Source Code", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "updating-smart-chain-software-from-source-code" + }, + { + "text": "Ecosystem Launch Parameters", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "The developer is likely to encounter an opportunity to interact with members of another Smart Chain community in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "At some future point, you may also be interested in having your own Smart Chain added to this list by purchasing Komodo's dPoW security services.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "The list of launch parameters for all Smart Chains supported by the Komodo notary nodes can be found here.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "Link to Ecosystem Launch Parameters", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "Link to Ecosystem Launch Parameters", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "ecosystem-launch-parameters" + }, + { + "text": "Learn How to Manually Delete Blockchain Data", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "learn-how-to-manually-delete-blockchain-data" + }, + { + "text": "Sometimes, a developer will need to delete their synced blockchain data and re-sync with the network. The following section teaches the safe way to conduct this process.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "learn-how-to-manually-delete-blockchain-data" + }, + { + "text": "Link to Smart Chain Maintenance Section", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "learn-how-to-manually-delete-blockchain-data" + }, + { + "text": "Link to Smart Chain Maintenance Section", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "learn-how-to-manually-delete-blockchain-data" + }, + { + "text": "Common Runtime Parameters", + "tagName": "h3", + "path": "start-here/learning-launchpad", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "As Komodo Smart Chain software is based on the Bitcoin protocol, we inherit many runtime parameters that are useful in creating a secure and efficient blockchain network.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "We recommend that the developer search through our abbreviated list of popular runtime parameters and experiment with one or two, to gain a conceptual understanding. This can help to expand your growing awareness of the potential of blockchain technology and how it is superior to fiat-based currency systems.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "Link to Common Runtime Parameters", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "Link to Common Runtime Parameters", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "common-runtime-parameters" + }, + { + "text": "Step 7: Experiment with Antara Customizations", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Time: 20 - 60 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "The most basic aspect of Komodo's Antara Framework is the ability to customize your Smart Chain. These customizations are provided by Komodo as enhancements to the default Bitcoin/Zcash protocol.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "We recommend that you scan through the list of enhancements, read the basic descriptions, and experiment with one or two that interest you.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Link to Antara Customizations", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Link to Antara Customizations", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-7-experiment-with-antara-customizations" + }, + { + "text": "Step 8: Read the Overview of Antara Modules - Part I", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Time: 30 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Antara Modules are where the power of the Komodo Smart Chain and the Antara Framework begin to come into full display. Antara Modules allow the developer to expand blockchain potential far beyond the limits by which many other blockchain ecosystems are bound.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "The Overview Part I provides a more thorough discussion about how the framework overcomes many problems faced by the blockchain industry.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Link to Overview of Antara Modules - Part I", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Link to Overview of Antara Modules - Part I", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-8-read-the-overview-of-antara-modules-part-i" + }, + { + "text": "Step 9: Read the Overview of Antara Modules - Part II", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Time: 30 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Part II of this discussion delves more deeply into the underlying methods by which Antara allows developers to solve problems.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Link to Overview of Antara Modules - Part II", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Link to Overview of Antara Modules - Part II", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-9-read-the-overview-of-antara-modules-part-ii" + }, + { + "text": "Step 10: Understand Antara Addresses", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Time: 5 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "At this point, the developer is familiar with common blockchain addresses.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "However, Antara requires the user to manage additional addresses for Antara-based currency. The passphrase for these addresses can all be the same, but the public address will not be.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "These addresses keep funds separate between different modules on a Smart Chain, and assist in maintaining token scarcity, among other uses.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Understanding Antara Addresses", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Understanding Antara Addresses", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-10-understand-antara-addresses" + }, + { + "text": "Step 11: Experiment With the Default Heir Antara Module", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Difficult: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Time: 15 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "A simple application of the Antara Framework is the Heir Antara Module. This simple module allows a user to designate an inheritor of their funds, should the user become inactive on a Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Read the introductory section to gain a more thorough understanding, and then try executing each command found in the Heir Module Flow section.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "The Heir Antara Module is active on the MARTY Smart Chain that serves as a test chain in the Komodo ecosystem.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Funds are freely available on this chain. Use the following ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "faucetget", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": " RPC to tap the community faucet and receive ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "0.1", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": " coins. This should be enough for the Heir Module Flow experiment.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "faucetget", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Copy the returned hex value and broadcast it using the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "sendrawtransaction", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": " RPC.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "sendrawtransaction", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Link to Heir Module Introduction", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Link to Heir Module Introduction", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Link to Heir Module Flow", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Link to Heir Module Flow", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-11-experiment-with-the-default-heir-antara-module" + }, + { + "text": "Step 12: Experiment with the Tokens Antara Module", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Time: 15 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "The Tokens Antara Module is often useful as it allows the developer to quickly and easily mint new currencies on their Smart Chain.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "tokenscreate", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": " RPC method to create your own tokens, and then experiment with other RPCs. This module is also available on the MARTY Smart Chain. Make sure to save the returned ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "txid", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": " after broadcasting your raw transaction. (See the Examples section for a demonstration of the token creation method.)", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Link to Tokens Antara Module - tokenscreate RPC", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Link to Tokens Antara Module - tokenscreate RPC", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Use the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "tokensinfo", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": " RPC method to view your new tokens.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Link to Tokens Antara Module - tokensinfo RPC", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Link to Tokens Antara Module - tokensinfo RPC", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-12-experiment-with-the-tokens-antara-module" + }, + { + "text": "Step 13: Read the Introduction to Komodo DeFi Framework", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Priority: Optional", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Time: 15 Minutes", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "The Normal Developer is now nearly finished with a grand tour of the Komodo software. The key remaining target is Komodo DeFi Framework, our signature method for exchanging cryptocurrencies using atomic swaps. Be one of the first people in the history of mankind to exchange assets with an anonymous person over the Internet without any middleman whatsoever.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "This introductory discussion covers some of the same concepts that the reader encountered in the Core Technology Discussions section, but with several useful additional details.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Link to Introduction to Komodo DeFi Framework", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Link to Introduction to Komodo DeFi Framework", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-13-read-the-introduction-to-komodo-de-fi-framework" + }, + { + "text": "Step 14: Experiment with Atomic Swaps", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Difficulty: Normal", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Time: 1 Hour", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Follow this walkthrough to perform your first atomic swaps.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Link to Komodo DeFi Framework Walkthrough", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Link to Komodo DeFi Framework Walkthrough", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "(If you still need to install Komodo DeFi Framework software, ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "click here for instructions on installing from source code.)", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "click here for instructions on installing from source code.)", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "For those Normal Developers who make it this far, congratulations! You have completed the grand tour of the Komodo software suite.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Going forward, we recommend that you experiment with individual RPCs and customizations throughout the documentation, until you feel fluent in utilizing Komodo technology.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Please keep in touch with our community on ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Discord.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": " We are excited to see what you create!", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Discord.", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-14-experiment-with-atomic-swaps" + }, + { + "text": "Step 15: Begin the Advanced Development Tutorial", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Priority: Recommended", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Difficulty: Advanced", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Time: 5 - 15 Hours", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Advanced Developers should now be familiar enough with the nature of Komodo technology to begin a more thorough approach to manipulating blockchain technology.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "The following tutorial series walks the developer through the initial development process. The tutorial will first explain several integral aspects of blockchain technology that blockchain engineers are required to understand. Then, the series walks the reader through the process of creating a simplified version of the Heir Antara Module.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "This tutorial series expects that you are comfortable with downloading a Github repository and manually inspecting the source code to determine the nature of the source code's functionality.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Once you complete this tutorial, you are among the most advanced of community developers. You may feel prepared to offer your services to businesses that would like to use your skills to commission customized Antara Modules for their unique business purposes and competitive-advantage desires.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Link to Advanced Series - Part 0 - Introduction", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Link to Advanced Series - Part 0 - Introduction", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-15-begin-the-advanced-development-tutorial" + }, + { + "text": "Step 16: Inspect Komodo Community Bounties", + "tagName": "h2", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Priority: Optional", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Difficulty: Advanced", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Time: ~", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Now that you are comfortable building new Antara Modules, it's time to put your skills to use and build something for the community.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "The Komodo team is looking for talented C/C++ developers to build new Antara Modules that can be included with Komodo's default suite of modules.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Creating a new default module can take up to a month's worth of time, and we try to make sure the value of the bounties is worth your while.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "[Link to Komodo Bounties](https://forum.komodoplatform.com/c/jobs-bounties)", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Alternatively, reach out to the Komodo development team on the ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "#dev-general", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": " channel on ", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Discord", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": " and ask where help is needed.", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "Discord", + "tagName": "a", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + }, + { + "text": "We look forward to working with you!", + "tagName": "p", + "path": "start-here/learning-launchpad", + "closestElementReference": "step-16-inspect-komodo-community-bounties" + } + ] +} \ No newline at end of file